diff --git a/ssl/ssl_ciph.c b/ssl/ssl_ciph.c
index 5a86683..da29878 100644
--- a/ssl/ssl_ciph.c
+++ b/ssl/ssl_ciph.c
@@ -1742,6 +1742,49 @@
 	return("(NONE)");
 	}
 
+const char *SSL_CIPHER_get_kx_name(const SSL_CIPHER *cipher) {
+  if (cipher == NULL) {
+    return "";
+  }
+
+  switch (cipher->algorithm_mkey) {
+    case SSL_kRSA:
+      return SSL_TXT_RSA;
+    case SSL_kDHr:
+      return SSL_TXT_DH "_" SSL_TXT_RSA;
+    case SSL_kDHd:
+      return SSL_TXT_DH "_" SSL_TXT_DSS;
+    case SSL_kEDH:
+      switch (cipher->algorithm_auth) {
+        case SSL_aDSS:
+          return "DHE_" SSL_TXT_DSS;
+        case SSL_aRSA:
+          return "DHE_" SSL_TXT_RSA;
+        case SSL_aNULL:
+          return SSL_TXT_DH "_anon";
+        default:
+          return "UNKNOWN";
+      }
+    case SSL_kECDHr:
+      return SSL_TXT_ECDH "_" SSL_TXT_RSA;
+    case SSL_kECDHe:
+      return SSL_TXT_ECDH "_" SSL_TXT_ECDSA;
+    case SSL_kEECDH:
+      switch (cipher->algorithm_auth) {
+        case SSL_aECDSA:
+          return "ECDHE_" SSL_TXT_ECDSA;
+        case SSL_aRSA:
+          return "ECDHE_" SSL_TXT_RSA;
+        case SSL_aNULL:
+          return SSL_TXT_ECDH "_anon";
+        default:
+          return "UNKNOWN";
+      }
+    default:
+      return "UNKNOWN";
+  }
+}
+
 /* number of bits for symmetric cipher */
 int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits)
 	{
