COMMON=admin.c admin.h tabcomplete.c tabcomplete.h fhistory.c fhistory.h
yaz_client_SOURCES=client.c $(COMMON)
-AM_CPPFLAGS=-I$(top_srcdir)/include $(XML2_CFLAGS) $(SSL_CFLAGS)
+AM_CPPFLAGS=-I$(top_srcdir)/include $(XML2_CFLAGS)
-yaz_client_LDADD = ../src/libyaz.la $(SSL_LIBS) $(READLINE_LIBS)
+yaz_client_LDADD = ../src/libyaz.la $(READLINE_LIBS)
bertorture_LDADD = ../src/libyaz.la
bertorture_SOURCES=bertorture.c
#include <sys/time.h>
#endif
-#if HAVE_OPENSSL_SSL_H
-#include <openssl/bio.h>
-#include <openssl/crypto.h>
-#include <openssl/x509.h>
-#include <openssl/pem.h>
-#include <openssl/ssl.h>
-#include <openssl/err.h>
-#endif
-
#ifdef WIN32
#include <sys/stat.h>
#include <io.h>
void *add;
char type_and_host[101];
const char *basep = 0;
-#if HAVE_OPENSSL_SSL_H
- SSL *ssl;
-#endif
if (conn)
{
cs_close(conn);
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);
-
- if (server_cert)
- {
- 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);
- }
- }
-#endif
+ cs_print_session_info(conn);
if (basep && *basep)
set_base (basep);
if (protocol == PROTO_Z3950)
YAZ_EXPORT void cs_set_max_recv_bytes(COMSTACK cs, int max_recv_bytes);
YAZ_EXPORT int completeWAIS(const char *buf, int len);
+YAZ_EXPORT void cs_print_session_info(COMSTACK cs);
+
/*
* error management.
*/
#if HAVE_GNUTLS_H
#include <gnutls/openssl.h>
+#include <gnutls/x509.h>
#define ENABLE_SSL 1
#endif
return 1;
}
+void cs_print_session_info(COMSTACK cs)
+{
+#if HAVE_GNUTLS_H
+ struct tcpip_state *sp = (struct tcpip_state *) cs->cprivate;
+ SSL *ssl = (SSL *) sp->ssl;
+ if (ssl)
+ {
+ gnutls_session_t session = ssl->gnutls_state;
+ if (gnutls_certificate_type_get(session) != GNUTLS_CRT_X509)
+ return;
+ printf("X509 certificate\n");
+ }
+#endif
+#if HAVE_OPENSSL_SSL_H
+ struct tcpip_state *sp = (struct tcpip_state *) cs->cprivate;
+ SSL *ssl = (SSL *) sp->ssl;
+ if (ssl)
+ {
+ X509 *server_cert = SSL_get_peer_certificate(ssl);
+
+ if (server_cert)
+ {
+ 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);
+ }
+ }
+#endif
+}
+
void *cs_get_ssl(COMSTACK cs)
{
#if HAVE_OPENSSL_SSL_H