1c87c5fbaSopenharmony_ci/* 2c87c5fbaSopenharmony_ci * coap_notls.c -- Stub Datagram Transport Layer Support for libcoap 3c87c5fbaSopenharmony_ci * 4c87c5fbaSopenharmony_ci * Copyright (C) 2016 Olaf Bergmann <bergmann@tzi.org> 5c87c5fbaSopenharmony_ci * Copyright (C) 2021-2023 Jon Shallow <supjps-libcoap@jpshallow.com> 6c87c5fbaSopenharmony_ci * 7c87c5fbaSopenharmony_ci * SPDX-License-Identifier: BSD-2-Clause 8c87c5fbaSopenharmony_ci * 9c87c5fbaSopenharmony_ci * This file is part of the CoAP library libcoap. Please see README for terms 10c87c5fbaSopenharmony_ci * of use. 11c87c5fbaSopenharmony_ci */ 12c87c5fbaSopenharmony_ci 13c87c5fbaSopenharmony_ci/** 14c87c5fbaSopenharmony_ci * @file coap_notls.c 15c87c5fbaSopenharmony_ci * @brief NoTLS specific interface functions 16c87c5fbaSopenharmony_ci */ 17c87c5fbaSopenharmony_ci 18c87c5fbaSopenharmony_ci#include "coap3/coap_internal.h" 19c87c5fbaSopenharmony_ci 20c87c5fbaSopenharmony_ci#if !defined(COAP_WITH_LIBTINYDTLS) && !defined(COAP_WITH_LIBOPENSSL) && !defined(COAP_WITH_LIBGNUTLS) && !defined(COAP_WITH_LIBMBEDTLS) 21c87c5fbaSopenharmony_ci 22c87c5fbaSopenharmony_ciint 23c87c5fbaSopenharmony_cicoap_dtls_is_supported(void) { 24c87c5fbaSopenharmony_ci return 0; 25c87c5fbaSopenharmony_ci} 26c87c5fbaSopenharmony_ci 27c87c5fbaSopenharmony_ciint 28c87c5fbaSopenharmony_cicoap_tls_is_supported(void) { 29c87c5fbaSopenharmony_ci return 0; 30c87c5fbaSopenharmony_ci} 31c87c5fbaSopenharmony_ci 32c87c5fbaSopenharmony_ci/* 33c87c5fbaSopenharmony_ci * return 0 failed 34c87c5fbaSopenharmony_ci * 1 passed 35c87c5fbaSopenharmony_ci */ 36c87c5fbaSopenharmony_ciint 37c87c5fbaSopenharmony_cicoap_dtls_psk_is_supported(void) { 38c87c5fbaSopenharmony_ci return 0; 39c87c5fbaSopenharmony_ci} 40c87c5fbaSopenharmony_ci 41c87c5fbaSopenharmony_ci/* 42c87c5fbaSopenharmony_ci * return 0 failed 43c87c5fbaSopenharmony_ci * 1 passed 44c87c5fbaSopenharmony_ci */ 45c87c5fbaSopenharmony_ciint 46c87c5fbaSopenharmony_cicoap_dtls_pki_is_supported(void) { 47c87c5fbaSopenharmony_ci return 0; 48c87c5fbaSopenharmony_ci} 49c87c5fbaSopenharmony_ci 50c87c5fbaSopenharmony_ci/* 51c87c5fbaSopenharmony_ci * return 0 failed 52c87c5fbaSopenharmony_ci * 1 passed 53c87c5fbaSopenharmony_ci */ 54c87c5fbaSopenharmony_ciint 55c87c5fbaSopenharmony_cicoap_dtls_pkcs11_is_supported(void) { 56c87c5fbaSopenharmony_ci return 0; 57c87c5fbaSopenharmony_ci} 58c87c5fbaSopenharmony_ci 59c87c5fbaSopenharmony_ci/* 60c87c5fbaSopenharmony_ci * return 0 failed 61c87c5fbaSopenharmony_ci * 1 passed 62c87c5fbaSopenharmony_ci */ 63c87c5fbaSopenharmony_ciint 64c87c5fbaSopenharmony_cicoap_dtls_rpk_is_supported(void) { 65c87c5fbaSopenharmony_ci return 0; 66c87c5fbaSopenharmony_ci} 67c87c5fbaSopenharmony_ci 68c87c5fbaSopenharmony_cicoap_tls_version_t * 69c87c5fbaSopenharmony_cicoap_get_tls_library_version(void) { 70c87c5fbaSopenharmony_ci static coap_tls_version_t version; 71c87c5fbaSopenharmony_ci version.version = 0; 72c87c5fbaSopenharmony_ci version.type = COAP_TLS_LIBRARY_NOTLS; 73c87c5fbaSopenharmony_ci return &version; 74c87c5fbaSopenharmony_ci} 75c87c5fbaSopenharmony_ci 76c87c5fbaSopenharmony_ciint 77c87c5fbaSopenharmony_cicoap_dtls_context_set_pki(coap_context_t *ctx COAP_UNUSED, 78c87c5fbaSopenharmony_ci const coap_dtls_pki_t *setup_data COAP_UNUSED, 79c87c5fbaSopenharmony_ci const coap_dtls_role_t role COAP_UNUSED 80c87c5fbaSopenharmony_ci ) { 81c87c5fbaSopenharmony_ci return 0; 82c87c5fbaSopenharmony_ci} 83c87c5fbaSopenharmony_ci 84c87c5fbaSopenharmony_ciint 85c87c5fbaSopenharmony_cicoap_dtls_context_set_pki_root_cas(coap_context_t *ctx COAP_UNUSED, 86c87c5fbaSopenharmony_ci const char *ca_file COAP_UNUSED, 87c87c5fbaSopenharmony_ci const char *ca_path COAP_UNUSED 88c87c5fbaSopenharmony_ci ) { 89c87c5fbaSopenharmony_ci return 0; 90c87c5fbaSopenharmony_ci} 91c87c5fbaSopenharmony_ci 92c87c5fbaSopenharmony_ci#if COAP_CLIENT_SUPPORT 93c87c5fbaSopenharmony_ciint 94c87c5fbaSopenharmony_cicoap_dtls_context_set_cpsk(coap_context_t *ctx COAP_UNUSED, 95c87c5fbaSopenharmony_ci coap_dtls_cpsk_t *setup_data COAP_UNUSED 96c87c5fbaSopenharmony_ci ) { 97c87c5fbaSopenharmony_ci return 0; 98c87c5fbaSopenharmony_ci} 99c87c5fbaSopenharmony_ci#endif /* COAP_CLIENT_SUPPORT */ 100c87c5fbaSopenharmony_ci 101c87c5fbaSopenharmony_ci#if COAP_SERVER_SUPPORT 102c87c5fbaSopenharmony_ciint 103c87c5fbaSopenharmony_cicoap_dtls_context_set_spsk(coap_context_t *ctx COAP_UNUSED, 104c87c5fbaSopenharmony_ci coap_dtls_spsk_t *setup_data COAP_UNUSED 105c87c5fbaSopenharmony_ci ) { 106c87c5fbaSopenharmony_ci return 0; 107c87c5fbaSopenharmony_ci} 108c87c5fbaSopenharmony_ci#endif /* COAP_SERVER_SUPPORT */ 109c87c5fbaSopenharmony_ci 110c87c5fbaSopenharmony_ciint 111c87c5fbaSopenharmony_cicoap_dtls_context_check_keys_enabled(coap_context_t *ctx COAP_UNUSED) { 112c87c5fbaSopenharmony_ci return 0; 113c87c5fbaSopenharmony_ci} 114c87c5fbaSopenharmony_ci 115c87c5fbaSopenharmony_cistatic coap_log_t dtls_log_level = COAP_LOG_EMERG; 116c87c5fbaSopenharmony_ci 117c87c5fbaSopenharmony_civoid 118c87c5fbaSopenharmony_cicoap_dtls_startup(void) { 119c87c5fbaSopenharmony_ci} 120c87c5fbaSopenharmony_ci 121c87c5fbaSopenharmony_civoid * 122c87c5fbaSopenharmony_cicoap_dtls_get_tls(const coap_session_t *c_session COAP_UNUSED, 123c87c5fbaSopenharmony_ci coap_tls_library_t *tls_lib) { 124c87c5fbaSopenharmony_ci if (tls_lib) 125c87c5fbaSopenharmony_ci *tls_lib = COAP_TLS_LIBRARY_NOTLS; 126c87c5fbaSopenharmony_ci return NULL; 127c87c5fbaSopenharmony_ci} 128c87c5fbaSopenharmony_ci 129c87c5fbaSopenharmony_civoid 130c87c5fbaSopenharmony_cicoap_dtls_shutdown(void) { 131c87c5fbaSopenharmony_ci coap_dtls_set_log_level(COAP_LOG_EMERG); 132c87c5fbaSopenharmony_ci} 133c87c5fbaSopenharmony_ci 134c87c5fbaSopenharmony_civoid 135c87c5fbaSopenharmony_cicoap_dtls_set_log_level(coap_log_t level) { 136c87c5fbaSopenharmony_ci dtls_log_level = level; 137c87c5fbaSopenharmony_ci} 138c87c5fbaSopenharmony_ci 139c87c5fbaSopenharmony_cicoap_log_t 140c87c5fbaSopenharmony_cicoap_dtls_get_log_level(void) { 141c87c5fbaSopenharmony_ci return dtls_log_level; 142c87c5fbaSopenharmony_ci} 143c87c5fbaSopenharmony_ci 144c87c5fbaSopenharmony_civoid * 145c87c5fbaSopenharmony_cicoap_dtls_new_context(coap_context_t *coap_context COAP_UNUSED) { 146c87c5fbaSopenharmony_ci return NULL; 147c87c5fbaSopenharmony_ci} 148c87c5fbaSopenharmony_ci 149c87c5fbaSopenharmony_civoid 150c87c5fbaSopenharmony_cicoap_dtls_free_context(void *handle COAP_UNUSED) { 151c87c5fbaSopenharmony_ci} 152c87c5fbaSopenharmony_ci 153c87c5fbaSopenharmony_ci#if COAP_SERVER_SUPPORT 154c87c5fbaSopenharmony_civoid * 155c87c5fbaSopenharmony_cicoap_dtls_new_server_session(coap_session_t *session COAP_UNUSED) { 156c87c5fbaSopenharmony_ci return NULL; 157c87c5fbaSopenharmony_ci} 158c87c5fbaSopenharmony_ci#endif /* COAP_SERVER_SUPPORT */ 159c87c5fbaSopenharmony_ci 160c87c5fbaSopenharmony_ci#if COAP_CLIENT_SUPPORT 161c87c5fbaSopenharmony_civoid * 162c87c5fbaSopenharmony_cicoap_dtls_new_client_session(coap_session_t *session COAP_UNUSED) { 163c87c5fbaSopenharmony_ci return NULL; 164c87c5fbaSopenharmony_ci} 165c87c5fbaSopenharmony_ci#endif /* COAP_CLIENT_SUPPORT */ 166c87c5fbaSopenharmony_ci 167c87c5fbaSopenharmony_civoid 168c87c5fbaSopenharmony_cicoap_dtls_free_session(coap_session_t *coap_session COAP_UNUSED) { 169c87c5fbaSopenharmony_ci} 170c87c5fbaSopenharmony_ci 171c87c5fbaSopenharmony_civoid 172c87c5fbaSopenharmony_cicoap_dtls_session_update_mtu(coap_session_t *session COAP_UNUSED) { 173c87c5fbaSopenharmony_ci} 174c87c5fbaSopenharmony_ci 175c87c5fbaSopenharmony_cissize_t 176c87c5fbaSopenharmony_cicoap_dtls_send(coap_session_t *session COAP_UNUSED, 177c87c5fbaSopenharmony_ci const uint8_t *data COAP_UNUSED, 178c87c5fbaSopenharmony_ci size_t data_len COAP_UNUSED) { 179c87c5fbaSopenharmony_ci return -1; 180c87c5fbaSopenharmony_ci} 181c87c5fbaSopenharmony_ci 182c87c5fbaSopenharmony_ciint 183c87c5fbaSopenharmony_cicoap_dtls_is_context_timeout(void) { 184c87c5fbaSopenharmony_ci return 1; 185c87c5fbaSopenharmony_ci} 186c87c5fbaSopenharmony_ci 187c87c5fbaSopenharmony_cicoap_tick_t 188c87c5fbaSopenharmony_cicoap_dtls_get_context_timeout(void *dtls_context COAP_UNUSED) { 189c87c5fbaSopenharmony_ci return 0; 190c87c5fbaSopenharmony_ci} 191c87c5fbaSopenharmony_ci 192c87c5fbaSopenharmony_cicoap_tick_t 193c87c5fbaSopenharmony_cicoap_dtls_get_timeout(coap_session_t *session COAP_UNUSED, coap_tick_t now COAP_UNUSED) { 194c87c5fbaSopenharmony_ci return 0; 195c87c5fbaSopenharmony_ci} 196c87c5fbaSopenharmony_ci 197c87c5fbaSopenharmony_ci/* 198c87c5fbaSopenharmony_ci * return 1 timed out 199c87c5fbaSopenharmony_ci * 0 still timing out 200c87c5fbaSopenharmony_ci */ 201c87c5fbaSopenharmony_ciint 202c87c5fbaSopenharmony_cicoap_dtls_handle_timeout(coap_session_t *session COAP_UNUSED) { 203c87c5fbaSopenharmony_ci return 0; 204c87c5fbaSopenharmony_ci} 205c87c5fbaSopenharmony_ci 206c87c5fbaSopenharmony_ciint 207c87c5fbaSopenharmony_cicoap_dtls_receive(coap_session_t *session COAP_UNUSED, 208c87c5fbaSopenharmony_ci const uint8_t *data COAP_UNUSED, 209c87c5fbaSopenharmony_ci size_t data_len COAP_UNUSED 210c87c5fbaSopenharmony_ci ) { 211c87c5fbaSopenharmony_ci return -1; 212c87c5fbaSopenharmony_ci} 213c87c5fbaSopenharmony_ci 214c87c5fbaSopenharmony_ci#if COAP_SERVER_SUPPORT 215c87c5fbaSopenharmony_ciint 216c87c5fbaSopenharmony_cicoap_dtls_hello(coap_session_t *session COAP_UNUSED, 217c87c5fbaSopenharmony_ci const uint8_t *data COAP_UNUSED, 218c87c5fbaSopenharmony_ci size_t data_len COAP_UNUSED 219c87c5fbaSopenharmony_ci ) { 220c87c5fbaSopenharmony_ci return 0; 221c87c5fbaSopenharmony_ci} 222c87c5fbaSopenharmony_ci#endif /* COAP_SERVER_SUPPORT */ 223c87c5fbaSopenharmony_ci 224c87c5fbaSopenharmony_ciunsigned int 225c87c5fbaSopenharmony_cicoap_dtls_get_overhead(coap_session_t *session COAP_UNUSED) { 226c87c5fbaSopenharmony_ci return 0; 227c87c5fbaSopenharmony_ci} 228c87c5fbaSopenharmony_ci 229c87c5fbaSopenharmony_ci#if COAP_CLIENT_SUPPORT 230c87c5fbaSopenharmony_civoid * 231c87c5fbaSopenharmony_cicoap_tls_new_client_session(coap_session_t *session COAP_UNUSED) { 232c87c5fbaSopenharmony_ci return NULL; 233c87c5fbaSopenharmony_ci} 234c87c5fbaSopenharmony_ci#endif /* COAP_CLIENT_SUPPORT */ 235c87c5fbaSopenharmony_ci 236c87c5fbaSopenharmony_ci#if COAP_SERVER_SUPPORT 237c87c5fbaSopenharmony_civoid * 238c87c5fbaSopenharmony_cicoap_tls_new_server_session(coap_session_t *session COAP_UNUSED) { 239c87c5fbaSopenharmony_ci return NULL; 240c87c5fbaSopenharmony_ci} 241c87c5fbaSopenharmony_ci#endif /* COAP_SERVER_SUPPORT */ 242c87c5fbaSopenharmony_ci 243c87c5fbaSopenharmony_civoid 244c87c5fbaSopenharmony_cicoap_tls_free_session(coap_session_t *coap_session COAP_UNUSED) { 245c87c5fbaSopenharmony_ci} 246c87c5fbaSopenharmony_ci 247c87c5fbaSopenharmony_ci/* 248c87c5fbaSopenharmony_ci * strm 249c87c5fbaSopenharmony_ci * return +ve Number of bytes written. 250c87c5fbaSopenharmony_ci * -1 Error (error in errno). 251c87c5fbaSopenharmony_ci */ 252c87c5fbaSopenharmony_cissize_t 253c87c5fbaSopenharmony_cicoap_tls_write(coap_session_t *session COAP_UNUSED, 254c87c5fbaSopenharmony_ci const uint8_t *data COAP_UNUSED, 255c87c5fbaSopenharmony_ci size_t data_len COAP_UNUSED) { 256c87c5fbaSopenharmony_ci return -1; 257c87c5fbaSopenharmony_ci} 258c87c5fbaSopenharmony_ci 259c87c5fbaSopenharmony_ci/* 260c87c5fbaSopenharmony_ci * strm 261c87c5fbaSopenharmony_ci * return >=0 Number of bytes read. 262c87c5fbaSopenharmony_ci * -1 Error (error in errno). 263c87c5fbaSopenharmony_ci */ 264c87c5fbaSopenharmony_cissize_t 265c87c5fbaSopenharmony_cicoap_tls_read(coap_session_t *session COAP_UNUSED, 266c87c5fbaSopenharmony_ci uint8_t *data COAP_UNUSED, 267c87c5fbaSopenharmony_ci size_t data_len COAP_UNUSED) { 268c87c5fbaSopenharmony_ci return -1; 269c87c5fbaSopenharmony_ci} 270c87c5fbaSopenharmony_ci 271c87c5fbaSopenharmony_ci#if COAP_SERVER_SUPPORT 272c87c5fbaSopenharmony_citypedef struct coap_local_hash_t { 273c87c5fbaSopenharmony_ci size_t ofs; 274c87c5fbaSopenharmony_ci coap_key_t key[8]; /* 32 bytes in total */ 275c87c5fbaSopenharmony_ci} coap_local_hash_t; 276c87c5fbaSopenharmony_ci 277c87c5fbaSopenharmony_cicoap_digest_ctx_t * 278c87c5fbaSopenharmony_cicoap_digest_setup(void) { 279c87c5fbaSopenharmony_ci coap_key_t *digest_ctx = coap_malloc_type(COAP_DIGEST_CTX, sizeof(coap_local_hash_t)); 280c87c5fbaSopenharmony_ci 281c87c5fbaSopenharmony_ci if (digest_ctx) { 282c87c5fbaSopenharmony_ci memset(digest_ctx, 0, sizeof(coap_local_hash_t)); 283c87c5fbaSopenharmony_ci } 284c87c5fbaSopenharmony_ci 285c87c5fbaSopenharmony_ci return digest_ctx; 286c87c5fbaSopenharmony_ci} 287c87c5fbaSopenharmony_ci 288c87c5fbaSopenharmony_civoid 289c87c5fbaSopenharmony_cicoap_digest_free(coap_digest_ctx_t *digest_ctx) { 290c87c5fbaSopenharmony_ci coap_free_type(COAP_DIGEST_CTX, digest_ctx); 291c87c5fbaSopenharmony_ci} 292c87c5fbaSopenharmony_ci 293c87c5fbaSopenharmony_ciint 294c87c5fbaSopenharmony_cicoap_digest_update(coap_digest_ctx_t *digest_ctx, 295c87c5fbaSopenharmony_ci const uint8_t *data, 296c87c5fbaSopenharmony_ci size_t data_len) { 297c87c5fbaSopenharmony_ci coap_local_hash_t *local = (coap_local_hash_t *)digest_ctx; 298c87c5fbaSopenharmony_ci 299c87c5fbaSopenharmony_ci coap_hash(data, data_len, local->key[local->ofs]); 300c87c5fbaSopenharmony_ci 301c87c5fbaSopenharmony_ci local->ofs = (local->ofs + 1) % 7; 302c87c5fbaSopenharmony_ci return 1; 303c87c5fbaSopenharmony_ci} 304c87c5fbaSopenharmony_ci 305c87c5fbaSopenharmony_ciint 306c87c5fbaSopenharmony_cicoap_digest_final(coap_digest_ctx_t *digest_ctx, 307c87c5fbaSopenharmony_ci coap_digest_t *digest_buffer) { 308c87c5fbaSopenharmony_ci coap_local_hash_t *local = (coap_local_hash_t *)digest_ctx; 309c87c5fbaSopenharmony_ci 310c87c5fbaSopenharmony_ci memcpy(digest_buffer, local->key, sizeof(coap_digest_t)); 311c87c5fbaSopenharmony_ci 312c87c5fbaSopenharmony_ci coap_digest_free(digest_ctx); 313c87c5fbaSopenharmony_ci return 1; 314c87c5fbaSopenharmony_ci} 315c87c5fbaSopenharmony_ci#endif /* COAP_SERVER_SUPPORT */ 316c87c5fbaSopenharmony_ci 317c87c5fbaSopenharmony_ci#if COAP_WS_SUPPORT 318c87c5fbaSopenharmony_ciint 319c87c5fbaSopenharmony_cicoap_crypto_hash(cose_alg_t alg, 320c87c5fbaSopenharmony_ci const coap_bin_const_t *data, 321c87c5fbaSopenharmony_ci coap_bin_const_t **hash) { 322c87c5fbaSopenharmony_ci (void)alg; 323c87c5fbaSopenharmony_ci (void)data; 324c87c5fbaSopenharmony_ci (void)hash; 325c87c5fbaSopenharmony_ci return 0; 326c87c5fbaSopenharmony_ci} 327c87c5fbaSopenharmony_ci#endif /* COAP_WS_SUPPORT */ 328c87c5fbaSopenharmony_ci 329c87c5fbaSopenharmony_ci#if COAP_OSCORE_SUPPORT 330c87c5fbaSopenharmony_ci 331c87c5fbaSopenharmony_ciint 332c87c5fbaSopenharmony_cicoap_oscore_is_supported(void) { 333c87c5fbaSopenharmony_ci return 0; 334c87c5fbaSopenharmony_ci} 335c87c5fbaSopenharmony_ci 336c87c5fbaSopenharmony_ciint 337c87c5fbaSopenharmony_cicoap_crypto_check_cipher_alg(cose_alg_t alg) { 338c87c5fbaSopenharmony_ci (void)alg; 339c87c5fbaSopenharmony_ci return 0; 340c87c5fbaSopenharmony_ci} 341c87c5fbaSopenharmony_ci 342c87c5fbaSopenharmony_ciint 343c87c5fbaSopenharmony_cicoap_crypto_check_hkdf_alg(cose_hkdf_alg_t hkdf_alg) { 344c87c5fbaSopenharmony_ci (void)hkdf_alg; 345c87c5fbaSopenharmony_ci return 0; 346c87c5fbaSopenharmony_ci} 347c87c5fbaSopenharmony_ci 348c87c5fbaSopenharmony_ciint 349c87c5fbaSopenharmony_cicoap_crypto_aead_encrypt(const coap_crypto_param_t *params, 350c87c5fbaSopenharmony_ci coap_bin_const_t *data, 351c87c5fbaSopenharmony_ci coap_bin_const_t *aad, 352c87c5fbaSopenharmony_ci uint8_t *result, 353c87c5fbaSopenharmony_ci size_t *max_result_len) { 354c87c5fbaSopenharmony_ci (void)params; 355c87c5fbaSopenharmony_ci (void)data; 356c87c5fbaSopenharmony_ci (void)aad; 357c87c5fbaSopenharmony_ci (void)result; 358c87c5fbaSopenharmony_ci *max_result_len = 0; 359c87c5fbaSopenharmony_ci return 0; 360c87c5fbaSopenharmony_ci} 361c87c5fbaSopenharmony_ci 362c87c5fbaSopenharmony_ciint 363c87c5fbaSopenharmony_cicoap_crypto_aead_decrypt(const coap_crypto_param_t *params, 364c87c5fbaSopenharmony_ci coap_bin_const_t *data, 365c87c5fbaSopenharmony_ci coap_bin_const_t *aad, 366c87c5fbaSopenharmony_ci uint8_t *result, 367c87c5fbaSopenharmony_ci size_t *max_result_len) { 368c87c5fbaSopenharmony_ci (void)params; 369c87c5fbaSopenharmony_ci (void)data; 370c87c5fbaSopenharmony_ci (void)aad; 371c87c5fbaSopenharmony_ci (void)result; 372c87c5fbaSopenharmony_ci *max_result_len = 0; 373c87c5fbaSopenharmony_ci return 0; 374c87c5fbaSopenharmony_ci} 375c87c5fbaSopenharmony_ci 376c87c5fbaSopenharmony_ciint 377c87c5fbaSopenharmony_cicoap_crypto_hmac(cose_hmac_alg_t hmac_alg, 378c87c5fbaSopenharmony_ci coap_bin_const_t *key, 379c87c5fbaSopenharmony_ci coap_bin_const_t *data, 380c87c5fbaSopenharmony_ci coap_bin_const_t **hmac) { 381c87c5fbaSopenharmony_ci (void)hmac_alg; 382c87c5fbaSopenharmony_ci (void)key; 383c87c5fbaSopenharmony_ci (void)data; 384c87c5fbaSopenharmony_ci (void)hmac; 385c87c5fbaSopenharmony_ci return 0; 386c87c5fbaSopenharmony_ci} 387c87c5fbaSopenharmony_ci 388c87c5fbaSopenharmony_ci#endif /* COAP_OSCORE_SUPPORT */ 389c87c5fbaSopenharmony_ci 390c87c5fbaSopenharmony_ci#else /* !COAP_WITH_LIBTINYDTLS && !COAP_WITH_LIBOPENSSL && !COAP_WITH_LIBGNUTLS */ 391c87c5fbaSopenharmony_ci 392c87c5fbaSopenharmony_ci#ifdef __clang__ 393c87c5fbaSopenharmony_ci/* Make compilers happy that do not like empty modules. As this function is 394c87c5fbaSopenharmony_ci * never used, we ignore -Wunused-function at the end of compiling this file 395c87c5fbaSopenharmony_ci */ 396c87c5fbaSopenharmony_ci#pragma GCC diagnostic ignored "-Wunused-function" 397c87c5fbaSopenharmony_ci#endif 398c87c5fbaSopenharmony_cistatic inline void 399c87c5fbaSopenharmony_cidummy(void) { 400c87c5fbaSopenharmony_ci} 401c87c5fbaSopenharmony_ci 402c87c5fbaSopenharmony_ci#endif /* !COAP_WITH_LIBTINYDTLS && !COAP_WITH_LIBOPENSSL && !COAP_WITH_LIBGNUTLS && !COAP_WITH_LIBMBEDTLS */ 403