diff --git a/contrib/sslinfo/sslinfo.c b/contrib/sslinfo/sslinfo.c
index 8482cfa..6c7d936 100644
--- a/contrib/sslinfo/sslinfo.c
+++ b/contrib/sslinfo/sslinfo.c
@@ -23,6 +23,8 @@ PG_MODULE_MAGIC;
 
 
 Datum		ssl_is_used(PG_FUNCTION_ARGS);
+Datum		ssl_version(PG_FUNCTION_ARGS);
+Datum		ssl_cipher(PG_FUNCTION_ARGS);
 Datum		ssl_client_cert_present(PG_FUNCTION_ARGS);
 Datum		ssl_client_serial(PG_FUNCTION_ARGS);
 Datum		ssl_client_dn_field(PG_FUNCTION_ARGS);
@@ -49,6 +51,32 @@ ssl_is_used(PG_FUNCTION_ARGS)
 
 
 /*
+ * Returns SSL cipher currently in use.
+ */
+PG_FUNCTION_INFO_V1(ssl_veresion);
+Datum
+ssl_version(PG_FUNCTION_ARGS)
+{
+	if (MyProcPort->ssl == NULL)
+		PG_RETURN_NULL();
+	PG_RETURN_TEXT_P(cstring_to_text(SSL_get_version(MyProcPort->ssl)));
+}
+
+
+/*
+ * Returns SSL cipher currently in use.
+ */
+PG_FUNCTION_INFO_V1(ssl_cipher);
+Datum
+ssl_cipher(PG_FUNCTION_ARGS)
+{
+	if (MyProcPort->ssl == NULL)
+		PG_RETURN_NULL();
+	PG_RETURN_TEXT_P(cstring_to_text(SSL_get_cipher(MyProcPort->ssl)));
+}
+
+
+/*
  * Indicates whether current client have provided a certificate
  *
  * Function has no arguments.  Returns bool.  True if current session
diff --git a/contrib/sslinfo/sslinfo.sql.in b/contrib/sslinfo/sslinfo.sql.in
index 705fd74..1353dab 100644
--- a/contrib/sslinfo/sslinfo.sql.in
+++ b/contrib/sslinfo/sslinfo.sql.in
@@ -11,6 +11,14 @@ CREATE OR REPLACE FUNCTION ssl_is_used() RETURNS boolean
 AS 'MODULE_PATHNAME', 'ssl_is_used'
 LANGUAGE C STRICT;
 
+CREATE OR REPLACE FUNCTION ssl_version() RETURNS text
+AS 'MODULE_PATHNAME', 'ssl_version'
+LANGUAGE C STRICT;
+
+CREATE OR REPLACE FUNCTION ssl_cipher() RETURNS text
+AS 'MODULE_PATHNAME', 'ssl_cipher'
+LANGUAGE C STRICT;
+
 CREATE OR REPLACE FUNCTION ssl_client_cert_present() RETURNS boolean
 AS 'MODULE_PATHNAME', 'ssl_client_cert_present'
 LANGUAGE C STRICT;
diff --git a/contrib/sslinfo/uninstall_sslinfo.sql b/contrib/sslinfo/uninstall_sslinfo.sql
index 5d2d9b3..1ea7bcc 100644
--- a/contrib/sslinfo/uninstall_sslinfo.sql
+++ b/contrib/sslinfo/uninstall_sslinfo.sql
@@ -5,6 +5,8 @@ SET search_path = public;
 
 DROP FUNCTION ssl_client_serial();
 DROP FUNCTION ssl_is_used();
+DROP FUNCTION ssl_cipher();
+DROP FUNCTION ssl_version();
 DROP FUNCTION ssl_client_cert_present();
 DROP FUNCTION ssl_client_dn_field(text);
 DROP FUNCTION ssl_issuer_field(text);
diff --git a/doc/src/sgml/sslinfo.sgml b/doc/src/sgml/sslinfo.sgml
index 2f71af9..39c5e75 100644
--- a/doc/src/sgml/sslinfo.sgml
+++ b/doc/src/sgml/sslinfo.sgml
@@ -37,6 +37,30 @@ ssl_is_used() returns boolean
 
    <varlistentry>
     <term><function>
+ssl_version() returns text
+    </function></term>
+    <listitem>
+    <para>
+     Returns the name of the protocol used for the SSL connection (e.g. SSLv2,
+     SSLv3, or TLSv1).
+    </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry>
+    <term><function>
+ssl_cipher() returns text
+    </function></term>
+    <listitem>
+    <para>
+     Returns the name of the cipher used for the SSL connection
+     (e.g. DHE-RSA-AES256-SHA).
+    </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry>
+    <term><function>
 ssl_client_cert_present() returns boolean
     </function></term>
     <listitem>
