summaryrefslogtreecommitdiff
path: root/src/common.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2011-06-04 09:29:27 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2011-06-04 09:29:27 +0200
commit966eafa08d4e0dbab4aee6af0794f24aaa00b315 (patch)
treefa49477124474959c6c78f7da3fd5e1f84c9c7db /src/common.c
parent0d66f1fc47ec0dec5bfe56928cc46ed47842b360 (diff)
downloadgnutls-966eafa08d4e0dbab4aee6af0794f24aaa00b315.tar.gz
Print information on elliptic curve sessions.
Diffstat (limited to 'src/common.c')
-rw-r--r--src/common.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/common.c b/src/common.c
index 3dfea1bb07..07687b810b 100644
--- a/src/common.c
+++ b/src/common.c
@@ -393,6 +393,20 @@ print_dh_info (gnutls_session_t session, const char *str)
}
}
+static void
+print_ecdh_info (gnutls_session_t session, const char *str)
+{
+int curve;
+
+ printf ("- %sEC Diffie-Hellman parameters\n", str);
+
+ curve = gnutls_ecc_curve_get(session);
+
+ printf (" - Using curve: %s\n", gnutls_ecc_curve_get_name (curve));
+ printf (" - Curve size: %d bits\n", gnutls_ecc_curve_get_size(curve)*8);
+
+}
+
int
print_info (gnutls_session_t session, const char *hostname, int insecure)
{
@@ -410,7 +424,9 @@ print_info (gnutls_session_t session, const char *hostname, int insecure)
{
#ifdef ENABLE_ANON
case GNUTLS_CRD_ANON:
- if (kx != GNUTLS_KX_ANON_ECDH)
+ if (kx == GNUTLS_KX_ANON_ECDH)
+ print_ecdh_info(session, "Anonymous ");
+ else
print_dh_info (session, "Anonymous ");
break;
#endif
@@ -438,6 +454,8 @@ print_info (gnutls_session_t session, const char *hostname, int insecure)
gnutls_psk_server_get_username (session));
if (kx == GNUTLS_KX_DHE_PSK)
print_dh_info (session, "Ephemeral ");
+ if (kx == GNUTLS_KX_ECDHE_PSK)
+ print_ecdh_info(session, "Ephemeral ");
break;
#endif
case GNUTLS_CRD_IA:
@@ -458,6 +476,8 @@ print_info (gnutls_session_t session, const char *hostname, int insecure)
if (kx == GNUTLS_KX_DHE_RSA || kx == GNUTLS_KX_DHE_DSS)
print_dh_info (session, "Ephemeral ");
+ else if (kx == GNUTLS_KX_ECDHE_RSA || kx == GNUTLS_KX_ECDHE_ECDSA)
+ print_ecdh_info(session, "Ephemeral ");
print_cert_info (session, hostname, insecure);