X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=client%2Fclient.c;h=cacc274162d5bea10913edd4a88dc2f9affe0b9c;hp=d0f9ad545ae0ba84894f9ae1038d3d6322814b9d;hb=8dc67a9430644549801c18ec7e3a725e5a4ef782;hpb=552daed9f1e10b6979346194fe4ce781298b4b0d diff --git a/client/client.c b/client/client.c index d0f9ad5..cacc274 100644 --- a/client/client.c +++ b/client/client.c @@ -2,7 +2,7 @@ * Copyright (c) 1995-2004, Index Data * See the file LICENSE for details. * - * $Id: client.c,v 1.238 2004-04-07 13:51:50 adam Exp $ + * $Id: client.c,v 1.239 2004-04-28 12:10:51 adam Exp $ */ #include @@ -16,6 +16,14 @@ #include #endif +#if HAVE_OPENSSL_SSL_H +#include +#include +#include +#include +#include +#endif + #include #include @@ -529,6 +537,9 @@ int session_connect(const char *arg) void *add; char type_and_host[101]; const char *basep = 0; +#if HAVE_OPENSSL_SSL_H + SSL *ssl; +#endif if (conn) { cs_close (conn); @@ -586,6 +597,31 @@ int session_connect(const char *arg) return 0; } printf("OK.\n"); +#if HAVE_OPENSSL_SSL_H + if ((ssl = (SSL *) cs_get_ssl(conn))) + { + X509 *server_cert = SSL_get_peer_certificate (ssl); + char *str; + if (server_cert) + { + printf ("Server certificate:\n"); + + str = X509_NAME_oneline (X509_get_subject_name (server_cert),0,0); + if (str) + { + printf ("\t subject: %s\n", str); + free (str); + } + str = X509_NAME_oneline (X509_get_issuer_name (server_cert),0,0); + if (str) + { + printf ("\t issuer: %s\n", str); + free (str); + } + X509_free (server_cert); + } + } +#endif if (basep && *basep) set_base (basep); if (protocol == PROTO_Z3950)