From d86b7cd6526aac72f559556b672ed731a5b912ea Mon Sep 17 00:00:00 2001 From: "7u83@mail.ru" <7u83@mail.ru@noemail.net> Date: Mon, 9 Feb 2015 21:04:14 +0000 Subject: [PATCH] Initial commit FossilOrigin-Name: ff81a462ed50c586bf2f6adcd12e72651d634e45432d920d6ac9b1e6fdbbbb16 --- src/capwap/dtls_gnutls_connect.c | 27 +++++++++++++++++++++++++ src/capwap/dtls_gnutls_get_cipher.c | 8 ++++++++ src/capwap/dtls_gnutls_get_peers_cert.c | 26 ++++++++++++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 src/capwap/dtls_gnutls_connect.c create mode 100644 src/capwap/dtls_gnutls_get_cipher.c create mode 100644 src/capwap/dtls_gnutls_get_peers_cert.c diff --git a/src/capwap/dtls_gnutls_connect.c b/src/capwap/dtls_gnutls_connect.c new file mode 100644 index 00000000..38223518 --- /dev/null +++ b/src/capwap/dtls_gnutls_connect.c @@ -0,0 +1,27 @@ + +#include "dtls.h" +#include "dtls_gnutls.h" + +#include "conn.h" +#include "cw_log.h" + +int dtls_gnutls_connect(struct conn *conn) +{ + struct dtls_gnutls_data * d; + d = dtls_gnutls_data_create(conn,GNUTLS_CLIENT | GNUTLS_DATAGRAM); + + gnutls_handshake_set_timeout(d->session,GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT); + int rc; + do { + rc = gnutls_handshake(d->session); + }while (rc==GNUTLS_E_AGAIN); + + + if (rc < 0){ + cw_log(LOG_ERR,"Can't connect: %s",gnutls_strerror(rc)); + return 0; + } + + return 1; +} + diff --git a/src/capwap/dtls_gnutls_get_cipher.c b/src/capwap/dtls_gnutls_get_cipher.c new file mode 100644 index 00000000..4a921d56 --- /dev/null +++ b/src/capwap/dtls_gnutls_get_cipher.c @@ -0,0 +1,8 @@ + + +#include "dtls_gnutls.h" + +const char *dtls_gnutls_get_cipher(struct conn *conn) +{ + return "Unknown"; +} diff --git a/src/capwap/dtls_gnutls_get_peers_cert.c b/src/capwap/dtls_gnutls_get_peers_cert.c new file mode 100644 index 00000000..9a122885 --- /dev/null +++ b/src/capwap/dtls_gnutls_get_peers_cert.c @@ -0,0 +1,26 @@ +#include +#include +#include + +#include "conn.h" +#include "dtls.h" +#include "dtls_gnutls.h" + +struct dtls_ssl_cert dtls_gnutls_get_peers_cert(struct conn * conn,unsigned int n) +{ + struct dtls_gnutls_data *d; + d=(struct dtls_gnutls_data*)conn->dtls_data; + + const gnutls_datum_t * clist; + + struct dtls_ssl_cert cert; + + unsigned int len; + clist = gnutls_certificate_get_peers(d->session,&len); + + cert.size = clist[n].size; + cert.data= clist[n].data; + return cert; +} + +