Contiki-NG
|
Driver for the cc2538 SHA-256 mode of the security core. More...
Files | |
file | sha256.c |
Implementation of the cc2538 SHA-256 driver. | |
file | sha256.h |
Header file for the cc2538 SHA-256 driver. | |
Functions | |
static uint8_t | new_hash (sha256_state_t *state, const void *data, void *hash) |
Starts a new hash session in hardware. More... | |
static uint8_t | resume_hash (sha256_state_t *state, const void *data, void *hash) |
Resumes an already started hash session in hardware. More... | |
SHA-256 functions | |
uint8_t | sha256_init (sha256_state_t *state) |
Initializes the hash state. More... | |
uint8_t | sha256_process (sha256_state_t *state, const void *data, uint32_t len) |
Processes a block of memory through the hash. More... | |
uint8_t | sha256_done (sha256_state_t *state, void *hash) |
Terminates hash session to get the digest. More... | |
Driver for the cc2538 SHA-256 mode of the security core.
|
static |
Starts a new hash session in hardware.
state | Hash state |
data | Pointer to input message |
hash | Destination of the hash (32 bytes) |
CRYPTO_SUCCESS
if successful, or CRYPTO/SHA256 error code Definition at line 63 of file sha256.c.
References AES_AES_CTRL, AES_CTRL_ALG_SEL, AES_CTRL_ALG_SEL_HASH, AES_CTRL_ALG_SEL_TAG, AES_CTRL_INT_CFG, AES_CTRL_INT_CFG_LEVEL, AES_CTRL_INT_CLR, AES_CTRL_INT_CLR_DMA_BUS_ERR, AES_CTRL_INT_CLR_DMA_IN_DONE, AES_CTRL_INT_CLR_RESULT_AV, AES_CTRL_INT_EN, AES_CTRL_INT_EN_DMA_IN_DONE, AES_CTRL_INT_EN_RESULT_AV, AES_CTRL_INT_STAT, AES_CTRL_INT_STAT_DMA_BUS_ERR, AES_CTRL_INT_STAT_RESULT_AV, AES_DMAC_CH0_CTRL, AES_DMAC_CH0_DMALENGTH, AES_DMAC_CH0_EXTADDR, AES_DMAC_CH1_CTRL, AES_DMAC_CH1_DMALENGTH, AES_DMAC_CH1_EXTADDR, AES_DMAC_CH_CTRL_EN, AES_HASH_IO_BUF_CTRL, AES_HASH_IO_BUF_CTRL_PAD_DMA_MESSAGE, AES_HASH_LENGTH_IN_H, AES_HASH_LENGTH_IN_L, AES_HASH_MODE_IN, AES_HASH_MODE_IN_NEW_HASH, and AES_HASH_MODE_IN_SHA256_MODE.
Referenced by sha256_done(), and sha256_process().
|
static |
Resumes an already started hash session in hardware.
state | Hash state |
data | Pointer to the input message |
hash | Pointer to the destination of the hash (32 bytes) |
CRYPTO_SUCCESS
if successful, or CRYPTO/SHA256 error code Definition at line 140 of file sha256.c.
References AES_AES_CTRL, AES_CTRL_ALG_SEL, AES_CTRL_ALG_SEL_HASH, AES_CTRL_INT_CFG, AES_CTRL_INT_CFG_LEVEL, AES_CTRL_INT_CLR, AES_CTRL_INT_CLR_DMA_BUS_ERR, AES_CTRL_INT_CLR_DMA_IN_DONE, AES_CTRL_INT_CLR_RESULT_AV, AES_CTRL_INT_EN, AES_CTRL_INT_EN_DMA_IN_DONE, AES_CTRL_INT_EN_RESULT_AV, AES_CTRL_INT_STAT, AES_CTRL_INT_STAT_DMA_BUS_ERR, AES_CTRL_INT_STAT_RESULT_AV, AES_DMAC_CH0_CTRL, AES_DMAC_CH0_DMALENGTH, AES_DMAC_CH0_EXTADDR, AES_DMAC_CH_CTRL_EN, AES_HASH_DIGEST_A, AES_HASH_DIGEST_B, AES_HASH_DIGEST_C, AES_HASH_DIGEST_D, AES_HASH_DIGEST_E, AES_HASH_DIGEST_F, AES_HASH_DIGEST_G, AES_HASH_DIGEST_H, AES_HASH_IO_BUF_CTRL, AES_HASH_IO_BUF_CTRL_OUTPUT_FULL, AES_HASH_IO_BUF_CTRL_PAD_DMA_MESSAGE, AES_HASH_LENGTH_IN_H, AES_HASH_LENGTH_IN_L, AES_HASH_MODE_IN, and AES_HASH_MODE_IN_SHA256_MODE.
Referenced by sha256_done(), and sha256_process().
uint8_t sha256_done | ( | sha256_state_t * | state, |
void * | hash | ||
) |
Terminates hash session to get the digest.
state | Pointer to hash state |
hash | Pointer to hash |
CRYPTO_SUCCESS
if successful, or CRYPTO/SHA256 error code sha256_process()
. Definition at line 320 of file sha256.c.
References AES_CTRL_ALG_SEL, new_hash(), and resume_hash().
uint8_t sha256_init | ( | sha256_state_t * | state | ) |
uint8_t sha256_process | ( | sha256_state_t * | state, |
const void * | data, | ||
uint32_t | len | ||
) |
Processes a block of memory through the hash.
state | Pointer to hash state |
data | Pointer to the data to hash |
len | Length of the data to hash in bytes (octets) |
CRYPTO_SUCCESS
if successful, or CRYPTO/SHA256 error code sha256_init()
. Definition at line 243 of file sha256.c.
References AES_CTRL_ALG_SEL, new_hash(), and resume_hash().