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