|
Contiki 3.x
|
Files | |
| file | sha256.c |
| Implementation of 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... | |
| 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... | |
|
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(), NULL, 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(), NULL, and resume_hash().
1.8.6