Commit 6d16902e authored by Robert Haas's avatar Robert Haas

Add ssl_cipher() and ssl_version() functions to contrib/sslinfo.

Review by Dave Page.
parent 9b6b0b0d
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* Written by Victor B. Wagner <vitus@cryptocom.ru>, Cryptocom LTD * Written by Victor B. Wagner <vitus@cryptocom.ru>, Cryptocom LTD
* This file is distributed under BSD-style license. * This file is distributed under BSD-style license.
* *
* $PostgreSQL: pgsql/contrib/sslinfo/sslinfo.c,v 1.8 2008/11/10 14:57:38 tgl Exp $ * $PostgreSQL: pgsql/contrib/sslinfo/sslinfo.c,v 1.9 2010/07/27 23:43:42 rhaas Exp $
*/ */
#include "postgres.h" #include "postgres.h"
...@@ -23,6 +23,8 @@ PG_MODULE_MAGIC; ...@@ -23,6 +23,8 @@ PG_MODULE_MAGIC;
Datum ssl_is_used(PG_FUNCTION_ARGS); 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_cert_present(PG_FUNCTION_ARGS);
Datum ssl_client_serial(PG_FUNCTION_ARGS); Datum ssl_client_serial(PG_FUNCTION_ARGS);
Datum ssl_client_dn_field(PG_FUNCTION_ARGS); Datum ssl_client_dn_field(PG_FUNCTION_ARGS);
...@@ -48,6 +50,32 @@ ssl_is_used(PG_FUNCTION_ARGS) ...@@ -48,6 +50,32 @@ ssl_is_used(PG_FUNCTION_ARGS)
} }
/*
* Returns SSL cipher currently in use.
*/
PG_FUNCTION_INFO_V1(ssl_version);
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 * Indicates whether current client have provided a certificate
* *
......
/* $PostgreSQL: pgsql/contrib/sslinfo/sslinfo.sql.in,v 1.4 2007/11/13 04:24:29 momjian Exp $ */ /* $PostgreSQL: pgsql/contrib/sslinfo/sslinfo.sql.in,v 1.5 2010/07/27 23:43:42 rhaas Exp $ */
-- Adjust this setting to control where the objects get created. -- Adjust this setting to control where the objects get created.
SET search_path = public; SET search_path = public;
...@@ -11,6 +11,14 @@ CREATE OR REPLACE FUNCTION ssl_is_used() RETURNS boolean ...@@ -11,6 +11,14 @@ CREATE OR REPLACE FUNCTION ssl_is_used() RETURNS boolean
AS 'MODULE_PATHNAME', 'ssl_is_used' AS 'MODULE_PATHNAME', 'ssl_is_used'
LANGUAGE C STRICT; 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 CREATE OR REPLACE FUNCTION ssl_client_cert_present() RETURNS boolean
AS 'MODULE_PATHNAME', 'ssl_client_cert_present' AS 'MODULE_PATHNAME', 'ssl_client_cert_present'
LANGUAGE C STRICT; LANGUAGE C STRICT;
......
/* $PostgreSQL: pgsql/contrib/sslinfo/uninstall_sslinfo.sql,v 1.3 2007/11/13 04:24:29 momjian Exp $ */ /* $PostgreSQL: pgsql/contrib/sslinfo/uninstall_sslinfo.sql,v 1.4 2010/07/27 23:43:42 rhaas Exp $ */
-- Adjust this setting to control where the objects get dropped. -- Adjust this setting to control where the objects get dropped.
SET search_path = public; SET search_path = public;
DROP FUNCTION ssl_client_serial(); DROP FUNCTION ssl_client_serial();
DROP FUNCTION ssl_is_used(); DROP FUNCTION ssl_is_used();
DROP FUNCTION ssl_cipher();
DROP FUNCTION ssl_version();
DROP FUNCTION ssl_client_cert_present(); DROP FUNCTION ssl_client_cert_present();
DROP FUNCTION ssl_client_dn_field(text); DROP FUNCTION ssl_client_dn_field(text);
DROP FUNCTION ssl_issuer_field(text); DROP FUNCTION ssl_issuer_field(text);
......
<!-- $PostgreSQL: pgsql/doc/src/sgml/sslinfo.sgml,v 1.3 2007/12/06 04:12:10 tgl Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/sslinfo.sgml,v 1.4 2010/07/27 23:43:42 rhaas Exp $ -->
<sect1 id="sslinfo"> <sect1 id="sslinfo">
<title>sslinfo</title> <title>sslinfo</title>
...@@ -35,6 +35,30 @@ ssl_is_used() returns boolean ...@@ -35,6 +35,30 @@ ssl_is_used() returns boolean
</listitem> </listitem>
</varlistentry> </varlistentry>
<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> <varlistentry>
<term><function> <term><function>
ssl_client_cert_present() returns boolean ssl_client_cert_present() returns boolean
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment