X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=client%2Fclient.c;h=b113f782b10860d5c94beacc91557a5bf01467c4;hb=69758252fce6231073cb288a4f5bbf8f7febc249;hp=cacc274162d5bea10913edd4a88dc2f9affe0b9c;hpb=8dc67a9430644549801c18ec7e3a725e5a4ef782;p=yaz-moved-to-github.git diff --git a/client/client.c b/client/client.c index cacc274..b113f78 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.239 2004-04-28 12:10:51 adam Exp $ + * $Id: client.c,v 1.241 2004-04-28 22:44:58 adam Exp $ */ #include @@ -17,6 +17,7 @@ #endif #if HAVE_OPENSSL_SSL_H +#include #include #include #include @@ -601,23 +602,22 @@ int session_connect(const char *arg) 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); - } + char *pem_buf; + int pem_len; + BIO *bio = BIO_new(BIO_s_mem()); + + /* get PEM buffer in memory */ + PEM_write_bio_X509(bio, server_cert); + pem_len = BIO_get_mem_data(bio, &pem_buf); + fwrite(pem_buf, pem_len, 1, stdout); + + /* print all info on screen .. */ + X509_print_fp(stdout, server_cert); + BIO_free(bio); + X509_free (server_cert); } }