blob: dcdbe19fd9b2969afe5a1a7e3d97f60c33dadeab [file] [log] [blame]
/*
* Copyright (c) 2024 Nuvoton Technology Corporation.
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef _NUVOTON_NPCX_SOC_NCL_H_
#define _NUVOTON_NPCX_SOC_NCL_H_
#ifdef __cplusplus
extern "C" {
#endif
/* The status code returns from Nuvoton Cryptographic Library ROM APIs */
enum ncl_status {
NCL_STATUS_OK = 0xA5A5,
NCL_STATUS_FAIL = 0x5A5A,
NCL_STATUS_INVALID_PARAM = 0x02,
NCL_STATUS_PARAM_NOT_SUPPORTED = 0x03,
NCL_STATUS_SYSTEM_BUSY = 0x04,
NCL_STATUS_AUTHENTICATION_FAIL = 0x05,
NCL_STATUS_NO_RESPONSE = 0x06,
NCL_STATUS_HARDWARE_ERROR = 0x07
};
enum ncl_sha_type {
NCL_SHA_TYPE_2_256 = 0,
NCL_SHA_TYPE_2_384 = 1,
NCL_SHA_TYPE_2_512 = 2,
NCL_SHA_TYPE_NUM
};
/*
* This enum defines the security strengths supported by this DRBG mechanism.
* The internally generated entropy and nonce sizes are derived from these
* values. The supported actual sizes:
* Security strength (bits) 112 128 192 256 128_Test 256_Test
*
* Entropy size (Bytes) 32 48 64 96 111 128
* Nonce size (Bytes) 16 16 24 32 16 0
*/
enum ncl_drbg_security_strength {
NCL_DRBG_SECURITY_STRENGTH_112B = 0,
NCL_DRBG_SECURITY_STRENGTH_128B,
NCL_DRBG_SECURITY_STRENGTH_192B,
NCL_DRBG_SECURITY_STRENGTH_256B,
NCL_DRBG_SECURITY_STRENGTH_128B_TEST,
NCL_DRBG_SECURITY_STRENGTH_256B_TEST,
NCL_DRBG_MAX_SECURITY_STRENGTH
};
#ifdef __cplusplus
}
#endif
#endif /* _NUVOTON_NPCX_SOC_NCL_H_ */