blob: b825b6890d8466c9b46ea30312f4dbb4f0d7129a [file] [log] [blame]
/*
* Copyright (c) 2018 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
/** @file
* @brief Internal API for fetching TLS credentials
*/
#ifndef __TLS_INTERNAL_H
#define __TLS_INTERNAL_H
#include <zephyr/net/tls_credentials.h>
/* Internal structure representing TLS credential. */
struct tls_credential {
/* TLS credential type. */
enum tls_credential_type type;
/* Secure tag that credential can be referenced with. */
sec_tag_t tag;
/* A pointer to the credential buffer. */
const void *buf;
/* Credential length. */
size_t len;
};
/* Lock TLS credential access. */
void credentials_lock(void);
/* Unlock TLS credential access. */
void credentials_unlock(void);
/* Function for getting credential by tag and type.
*
* Note, that to assure thread safety, credential access should be locked with
* credentials_lock before calling this function.
*/
struct tls_credential *credential_get(sec_tag_t tag,
enum tls_credential_type type);
/* Function for iterating over credentials by tag.
*
* Note, that to assure thread safety, credential access should be locked with
* credentials_lock before calling this function.
*/
struct tls_credential *credential_next_get(sec_tag_t tag,
struct tls_credential *iter);
#endif /* __TLS_INTERNAL_H */