Program Listing for File crypto.h
↰ Return to documentation for file (include_public/anj/crypto.h)
/*
* Copyright 2023-2026 AVSystem <avsystem@avsystem.com>
* AVSystem Anjay Lite LwM2M SDK
* All rights reserved.
*
* Licensed under AVSystem Anjay Lite LwM2M Client SDK - Non-Commercial License.
* See the attached LICENSE file for details.
*/
#include <anj/init.h>
#ifndef ANJ_CRYPTO_H
# define ANJ_CRYPTO_H
# include <anj/defs.h>
# ifdef __cplusplus
extern "C" {
# endif
# ifdef ANJ_WITH_SECURITY
typedef enum {
ANJ_CRYPTO_DATA_SOURCE_EMPTY = 0,
ANJ_CRYPTO_DATA_SOURCE_BUFFER,
# ifdef ANJ_WITH_EXTERNAL_CRYPTO_STORAGE
ANJ_CRYPTO_DATA_SOURCE_EXTERNAL
# endif // ANJ_WITH_EXTERNAL_CRYPTO_STORAGE
} anj_crypto_data_source_t;
typedef enum {
ANJ_CRYPTO_SECURITY_TAG_CERTIFICATE_CHAIN,
ANJ_CRYPTO_SECURITY_TAG_PRIVATE_KEY,
ANJ_CRYPTO_SECURITY_TAG_CERT_REVOCATION_LIST,
ANJ_CRYPTO_SECURITY_TAG_PSK_IDENTITY,
ANJ_CRYPTO_SECURITY_TAG_PSK_KEY,
} anj_crypto_security_tag_t;
typedef struct {
const void *data;
size_t data_size;
} anj_crypto_security_info_buffer_t;
# ifdef ANJ_WITH_EXTERNAL_CRYPTO_STORAGE
typedef struct {
const char *identity;
} anj_crypto_security_info_external_t;
# endif // ANJ_WITH_EXTERNAL_CRYPTO_STORAGE
typedef struct {
anj_crypto_security_tag_t tag;
anj_crypto_data_source_t source;
union {
anj_crypto_security_info_buffer_t buffer;
# ifdef ANJ_WITH_EXTERNAL_CRYPTO_STORAGE
anj_crypto_security_info_external_t external;
# endif // ANJ_WITH_EXTERNAL_CRYPTO_STORAGE
} info;
} anj_crypto_security_info_t;
# endif // ANJ_WITH_SECURITY
# ifdef __cplusplus
}
# endif
#endif // ANJ_CRYPTO_H