Fix coap_notls.c, coap_tinydtls.c: after update merge from obgm/develop

Conficts created by Pull request #134
This commit is contained in:
Jon Shallow committed 2018-02-14 19:24:58 +00:00
commit 047c9fb082
13 files changed
+173 -12

No files matched your search

+1 -1
View File
@@ -10,7 +10,7 @@ services:
env:
- PLATFORM=posix TESTS=yes TLS=no
- PLATFORM=posix TLS=openssl
- PLATFORM=posix TESTS=yes TLS=openssl
# - PLATFORM=contiki TLS=no
# - PLATFORM=lwip TLS=no
+15
View File
@@ -27,6 +27,21 @@ int coap_dtls_is_supported(void);
/** Returns 1 if support for TLS is enabled, or 0 otherwise. */
int coap_tls_is_supported( void );
#define COAP_TLS_LIBRARY_NOTLS 0
#define COAP_TLS_LIBRARY_TINYDTLS 1
#define COAP_TLS_LIBRARY_OPENSSL 2
#define COAP_TLS_LIBRARY_GNUTLS 3
typedef struct coap_tls_version_t {
uint64_t version; /* Library Version */
int type; /* One of COAP_TLS_LIBRARY_* */
} coap_tls_version_t;
/**
* Returns the version and type of library libcoap was compiled against
*/
coap_tls_version_t *coap_get_tls_library_version(void);
/** Sets the log level to the specified value. */
void coap_dtls_set_log_level(int level);
+1
View File
@@ -77,6 +77,7 @@ global:
coap_get_log_level;
coap_get_query;
coap_get_resource_from_key;
coap_get_tls_library_version;
coap_handle_dgram;
coap_handle_event;
coap_handle_failed_notify;
+1
View File
@@ -75,6 +75,7 @@ coap_get_data
coap_get_log_level
coap_get_query
coap_get_resource_from_key
coap_get_tls_library_version
coap_handle_dgram
coap_handle_event
coap_handle_failed_notify
+8
View File
@@ -29,6 +29,14 @@ coap_tls_is_supported(void) {
return 0;
}
coap_tls_version_t *
coap_get_tls_library_version(void) {
static coap_tls_version_t version;
version.version = 0;
version.type = COAP_TLS_LIBRARY_NOTLS;
return &version;
}
int coap_dtls_context_set_pki( coap_context_t *ctx UNUSED,
coap_dtls_security_setup_t setup_callback UNUSED,
coap_dtls_pki_t* setup_data UNUSED
+16
View File
@@ -41,13 +41,29 @@ typedef struct coap_openssl_context_t {
} coap_openssl_context_t;
int coap_dtls_is_supported(void) {
if (SSLeay() < 0x10100000L) {
coap_log(LOG_WARNING, "OpenSSL version 1.1.0 or later is required\n");
return 0;
}
return 1;
}
int coap_tls_is_supported(void) {
if (SSLeay() < 0x10100000L) {
coap_log(LOG_WARNING, "OpenSSL version 1.1.0 or later is required\n");
return 0;
}
return 1;
}
coap_tls_version_t *
coap_get_tls_library_version(void) {
static coap_tls_version_t version;
version.version = SSLeay();
version.type = COAP_TLS_LIBRARY_OPENSSL;
return &version;
}
void coap_dtls_startup(void) {
SSL_load_error_strings();
SSL_library_init();
+8
View File
@@ -444,6 +444,14 @@ int coap_tls_is_supported(void) {
return 0;
}
coap_tls_version_t *
coap_get_tls_library_version(void) {
static coap_tls_version_t version;
version.version = DTLS_VERSION;
version.type = COAP_TLS_LIBRARY_TINYDTLS;
return &version;
}
int coap_dtls_context_set_pki( coap_context_t *ctx UNUSED,
coap_dtls_security_setup_t setup_callback UNUSED,
coap_dtls_pki_t* setup_data UNUSED
+2 -1
View File
@@ -21,7 +21,8 @@ testdriver_SOURCES = \
test_pdu.c \
test_sendqueue.c \
test_uri.c \
test_wellknown.c
test_wellknown.c \
test_tls.c
testdriver_LDADD = $(CUNIT_LIBS) $(DTLS_LIBS) $(top_builddir)/.libs/libcoap-$(LIBCOAP_API_VERSION).la
+5 -5
View File
@@ -277,14 +277,14 @@ t_sendqueue_tests_create(void) {
coap_address_t addr;
coap_address_init(&addr);
addr.size = sizeof(struct sockaddr_in6);
addr.addr.sin6.sin6_family = AF_INET6;
addr.addr.sin6.sin6_addr = in6addr_any;
addr.addr.sin6.sin6_port = htons(COAP_DEFAULT_PORT);
addr.size = sizeof(struct sockaddr_in);
addr.addr.sin.sin_family = AF_INET;
addr.addr.sin.sin_addr.s_addr = htonl(INADDR_ANY);
addr.addr.sin.sin_port = htons(COAP_DEFAULT_PORT);
ctx = coap_new_context(&addr);
addr.addr.sin6.sin6_addr = in6addr_loopback;
addr.addr.sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
session = coap_new_client_session(ctx, NULL, &addr, COAP_PROTO_UDP);
coap_ticks(&timestamp[0]);
+98
View File
@@ -0,0 +1,98 @@
/* libcoap unit tests
*
* Copyright (C) 2018 Olaf Bergmann <bergmann@tzi.org>
*
* This file is part of the CoAP library libcoap. Please see
* README for terms of use.
*/
#include "coap_config.h"
#include "test_tls.h"
#include <coap.h>
#undef HAVE_DTLS
#ifdef HAVE_LIBTINYDTLS
#define HAVE_DTLS 1
#include <tinydtls.h>
#include <dtls.h>
#endif /* HAVE_LIBTINYDTLS */
#ifdef HAVE_OPENSSL
#define HAVE_DTLS 1
#include <openssl/ssl.h>
#endif /* HAVE_OPENSSL */
#ifdef HAVE_GNUTLS
#define HAVE_DTLS 1
#include <gnutls/gnutls.h>
#endif /* HAVE_GNUTLS */
static void
t_tls1(void) {
int need_dtls = 0;
#ifdef HAVE_DTLS
need_dtls = 1;
#endif /* HAVE_DTLS */
CU_ASSERT(coap_dtls_is_supported() == need_dtls);
}
static void
t_tls2(void) {
coap_tls_version_t *v = coap_get_tls_library_version();
coap_tls_version_t version;
memset(&version, 0, sizeof(coap_tls_version_t));
#if defined(HAVE_OPENSSL)
version.version = SSLeay();
version.type = COAP_TLS_LIBRARY_OPENSSL;
#elif defined(HAVE_LIBTINYDTLS)
version.version = DTLS_VERSION;
version.type = COAP_TLS_LIBRARY_TINYDTLS;
#elif defined(HAVE_GNUTLS)
version.version = GNUTLS_VERSION_NUMBER;
version.type = COAP_TLS_LIBRARY_GNUTLS;
#else /* no DTLS */
version.version = 0;
version.type = COAP_TLS_LIBRARY_NOTLS;
#endif /* HAVE_OPENSSL || HAVE_LIBTINYDTLS */
CU_ASSERT_PTR_NOT_NULL_FATAL(v);
CU_ASSERT(version.version == v->version);
CU_ASSERT(version.type == v->type);
}
static int
t_tls_tests_create(void) {
coap_dtls_startup();
return 0;
}
CU_pSuite
t_init_tls_tests(void) {
CU_pSuite suite;
suite = CU_add_suite("TLS", t_tls_tests_create, NULL);
if (!suite) { /* signal error */
fprintf(stderr, "W: cannot add TLS test suite (%s)\n",
CU_get_error_msg());
return NULL;
}
#define TLS_TEST(s,t) \
if (!CU_ADD_TEST(s,t)) { \
fprintf(stderr, "W: cannot add TLS test (%s)\n", \
CU_get_error_msg()); \
}
TLS_TEST(suite, t_tls1);
TLS_TEST(suite, t_tls2);
return suite;
}
+11
View File
@@ -0,0 +1,11 @@
/* libcoap unit tests
*
* Copyright (C) 2018 Olaf Bergmann <bergmann@tzi.org>
*
* This file is part of the CoAP library libcoap. Please see
* README for terms of use.
*/
#include <CUnit/CUnit.h>
CU_pSuite t_init_tls_tests(void);
+5 -5
View File
@@ -254,14 +254,14 @@ t_wkc_tests_create(void) {
coap_address_init(&addr);
addr.size = sizeof(struct sockaddr_in6);
addr.addr.sin6.sin6_family = AF_INET6;
addr.addr.sin6.sin6_addr = in6addr_any;
addr.addr.sin6.sin6_port = htons(COAP_DEFAULT_PORT);
addr.size = sizeof(struct sockaddr_in);
addr.addr.sin.sin_family = AF_INET;
addr.addr.sin.sin_addr.s_addr = htonl(INADDR_ANY);
addr.addr.sin.sin_port = htons(COAP_DEFAULT_PORT);
ctx = coap_new_context(&addr);
addr.addr.sin6.sin6_addr = in6addr_loopback;
addr.addr.sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
session = coap_new_client_session(ctx, NULL, &addr, COAP_PROTO_UDP);
pdu = coap_pdu_init(0, 0, 0, TEST_PDU_SIZE);
+2
View File
@@ -11,6 +11,7 @@
#include "test_error_response.h"
#include "test_sendqueue.h"
#include "test_wellknown.h"
#include "test_tls.h"
#include "libcoap.h"
#ifdef __GNUC__
@@ -36,6 +37,7 @@ main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) {
t_init_error_response_tests();
t_init_sendqueue_tests();
t_init_wellknown_tests();
t_init_tls_tests();
CU_basic_set_mode(run_mode);
result = CU_basic_run_tests();