diff options
Diffstat (limited to 'manual/html_node/Obtaining-session-information.html')
-rw-r--r-- | manual/html_node/Obtaining-session-information.html | 317 |
1 files changed, 0 insertions, 317 deletions
diff --git a/manual/html_node/Obtaining-session-information.html b/manual/html_node/Obtaining-session-information.html deleted file mode 100644 index 5c93af9253..0000000000 --- a/manual/html_node/Obtaining-session-information.html +++ /dev/null @@ -1,317 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html> -<!-- This manual is last updated 4 March 2015 for version -3.5.4 of GnuTLS. - -Copyright (C) 2001-2015 Free Software Foundation, Inc.\\ -Copyright (C) 2001-2015 Nikos Mavrogiannopoulos - -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". --> -<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ --> -<head> -<title>GnuTLS 3.5.4: Obtaining session information</title> - -<meta name="description" content="GnuTLS 3.5.4: Obtaining session information"> -<meta name="keywords" content="GnuTLS 3.5.4: Obtaining session information"> -<meta name="resource-type" content="document"> -<meta name="distribution" content="global"> -<meta name="Generator" content="makeinfo"> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<link href="index.html#Top" rel="start" title="Top"> -<link href="Function-and-Data-Index.html#Function-and-Data-Index" rel="index" title="Function and Data Index"> -<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> -<link href="Client-examples.html#Client-examples" rel="up" title="Client examples"> -<link href="Using-a-callback-to-select-the-certificate-to-use.html#Using-a-callback-to-select-the-certificate-to-use" rel="next" title="Using a callback to select the certificate to use"> -<link href="Simple-Datagram-TLS-client-example.html#Simple-Datagram-TLS-client-example" rel="prev" title="Simple Datagram TLS client example"> -<style type="text/css"> -<!-- -a.summary-letter {text-decoration: none} -blockquote.indentedblock {margin-right: 0em} -blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} -blockquote.smallquotation {font-size: smaller} -div.display {margin-left: 3.2em} -div.example {margin-left: 3.2em} -div.lisp {margin-left: 3.2em} -div.smalldisplay {margin-left: 3.2em} -div.smallexample {margin-left: 3.2em} -div.smalllisp {margin-left: 3.2em} -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: inherit; font-size: smaller} -pre.smallexample {font-size: smaller} -pre.smallformat {font-family: inherit; font-size: smaller} -pre.smalllisp {font-size: smaller} -span.nolinebreak {white-space: nowrap} -span.roman {font-family: initial; font-weight: normal} -span.sansserif {font-family: sans-serif; font-weight: normal} -ul.no-bullet {list-style: none} -body { - margin: 2%; - padding: 0 5%; - background: #ffffff; -} -h1,h2,h3,h4,h5 { - font-weight: bold; - padding: 5px 5px 5px 5px; - background-color: #c2e0ff; - color: #336699; -} -h1 { - padding: 2em 2em 2em 5%; - color: white; - background: #336699; - text-align: center; - letter-spacing: 3px; -} -h2 { text-decoration: underline; } -pre { - margin: 0 5%; - padding: 0.5em; -} -pre.example,pre.verbatim { - padding-bottom: 1em; - - border: solid #c2e0ff; - background: #f0faff; - border-width: 1px 1px 1px 5px; - margin: 1em auto; - width: 90%; -} - -div.node { - margin: 0 -5% 0 -2%; - padding: 0.5em 0.5em; - margin-top: 0.5em; - margin-bottom: 0.5em; - font-weight: bold; -} -dd, li { - padding-top: 0.1em; - padding-bottom: 0.1em; -} -div.float { - - margin-bottom: 0.5em; - text-align: center; -} - -table { - text-align: left; - margin-left:auto; - margin-right:auto; - border-spacing: 7px; - width: 50%; -} - -th { - padding: 0; - color: #336699; - background-color: #c2e0ff; - border: solid #000000; - border-width: 0px; - margin: 1em auto; - text-align: center; - margin-left:auto; - margin-right:auto; -} - -td { - padding: 0; - border: solid #000000; - background-color: #f0faff; - border-width: 0px; - margin: 1em auto; - text-align: left; - margin-left:auto; - margin-right:auto; - padding-left: 1em; -} - -dl { - text-align: left; - margin-left:auto; - margin-right:auto; - width: 50%; - - padding-left: 1em; - border: solid #c2e0ff; - background: #f0faff; - border-width: 5px 1px 1px 1px; - margin: 1em auto; -} - ---> -</style> - - -</head> - -<body lang="en"> -<a name="Obtaining-session-information"></a> -<div class="header"> -<p> -Next: <a href="Using-a-callback-to-select-the-certificate-to-use.html#Using-a-callback-to-select-the-certificate-to-use" accesskey="n" rel="next">Using a callback to select the certificate to use</a>, Previous: <a href="Simple-Datagram-TLS-client-example.html#Simple-Datagram-TLS-client-example" accesskey="p" rel="prev">Simple Datagram TLS client example</a>, Up: <a href="Client-examples.html#Client-examples" accesskey="u" rel="up">Client examples</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Function-and-Data-Index.html#Function-and-Data-Index" title="Index" rel="index">Index</a>]</p> -</div> -<hr> -<a name="Obtaining-session-information-1"></a> -<h4 class="subsection">7.1.5 Obtaining session information</h4> - -<p>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 <a href="Core-TLS-API.html#gnutls_005fhandshake">gnutls_handshake</a>. -</p> -<pre class="verbatim">/* 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; -} -</pre> -<hr> -<div class="header"> -<p> -Next: <a href="Using-a-callback-to-select-the-certificate-to-use.html#Using-a-callback-to-select-the-certificate-to-use" accesskey="n" rel="next">Using a callback to select the certificate to use</a>, Previous: <a href="Simple-Datagram-TLS-client-example.html#Simple-Datagram-TLS-client-example" accesskey="p" rel="prev">Simple Datagram TLS client example</a>, Up: <a href="Client-examples.html#Client-examples" accesskey="u" rel="up">Client examples</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Function-and-Data-Index.html#Function-and-Data-Index" title="Index" rel="index">Index</a>]</p> -</div> - - - -</body> -</html> |