HAL HASH Types

HAL HASH Types

group HASH_Exported_Types

Typedefs

typedef struct hal_hash_handle_s hal_hash_handle_t

HASH handle structure type

typedef void ( * hal_hash_cb_t ) ( hal_hash_handle_t * hhash )

HAL HASH callback pointer definition

Enums

enum hal_hash_t

HASH instance

Values:

enumerator HAL_HASH

HAL HASH instance

enum hal_hash_state_t

HAL Global State enumeration definition

Values:

enumerator HAL_HASH_STATE_RESET

HASH is not initialized

enumerator HAL_HASH_STATE_INIT

HASH is initialized but not yet configured

enumerator HAL_HASH_STATE_CONFIGURED

HASH initialized and a global config applied

enumerator HAL_HASH_HMAC_STATE_CONFIGURED

HASH HMAC initialized and a global config applied

enumerator HAL_HASH_STATE_COMPUTE_ACTIVE

HASH compute active process is ongoing

enumerator HAL_HASH_STATE_UPDATE_ACTIVE

HASH update active process is ongoing

enumerator HAL_HASH_HMAC_STATE_COMPUTE_ACTIVE

HASH HMAC compute active process is ongoing

enumerator HAL_HASH_HMAC_STATE_UPDATE_ACTIVE

HASH HMAC update active process is ongoing

enumerator HAL_HASH_STATE_SUSPENDED

HASH is suspended

enumerator HAL_HASH_STATE_ABORT

HASH is aborted

enum hal_hash_algo_t

HASH algorithm selection

Values:

enumerator HAL_HASH_ALGO_SHA1

HASH algorithm is SHA1

enumerator HAL_HASH_ALGO_SHA224

0x00040000 HASH algorithm is SHA224

enumerator HAL_HASH_ALGO_SHA256

HASH algorithm is SHA256

enum hal_hash_data_swapping_t

HASH data swapping enumeration definition

Values:

enumerator HAL_HASH_DATA_SWAP_NO

32-bit data. No swapping

enumerator HAL_HASH_DATA_SWAP_HALFWORD

0x00000010 16-bit data. Each half word is swapped

enumerator HAL_HASH_DATA_SWAP_BYTE

0x00000020 8-bit data. All bytes are swapped

enumerator HAL_HASH_DATA_SWAP_BIT

0x00000030 Data type selection 1-bit data. In the word all bits are swapped

struct hal_hash_config_t
#include <stm32c5xx_hal_hash.h>

HASH Configuration structure definition

Public Members

hal_hash_data_swapping_t data_swapping

Data swapping mode: No swap (32-bit data), half word swap (16-bit data), byte swap (8-bit data) or bit swap (1-bit data). This parameter can be a value of hal_hash_data_swapping_t.

hal_hash_algo_t algorithm

HASH algorithm SHA-1, SHA2-224, SHA2-256, and on some supported devices SHA2-384, SHA2-512224, SHA2-512256 and SHA2-512. This parameter can be a value of hal_hash_algo_t

struct hal_hash_hmac_config_t
#include <stm32c5xx_hal_hash.h>

HASH HMAC Configuration structure definition

Public Members

hal_hash_data_swapping_t data_swapping

No swap (32-bit data), half word swap (16-bit data), byte swap (8-bit data) or bit swap (1-bit data). This parameter can be a value of hal_hash_data_swapping_t.

hal_hash_algo_t algorithm

HASH algorithm SHA-1, SHA2-224, SHA2-256, and on some supported devices SHA2-384, SHA2-512224, SHA2-512256 and SHA2-512. This parameter can be a value of hal_hash_algo_t

uint8_t * p_hmac_key

Pointer to the HMAC key data (read-only)

uint32_t key_size_byte

The HMAC key size in bytes

struct hal_hash_suspended_context_t
#include <stm32c5xx_hal_hash.h>

HASH suspend/resume context structure

Public Members

uint32_t csr_reg [ 54U ]

Copy of HASH context swap register when processing is suspended

uint32_t imr_reg

Copy of HASH interrupt enable register when processing is suspended

uint32_t str_reg

Copy of HASH start register when processing is suspended

uint32_t cr_reg

Copy of HASH control register when processing is suspended

uint32_t input_data_count_byte

Copy of input data counter

uint32_t input_size_byte

Copy of buffer input size to be processed in bytes

uint32_t output_size_byte

Copy of buffer output size to be processed in bytes

uint32_t digest_size_byte

Copy of digest size in bytes of selected algorithm

uint32_t key_size_byte

Copy of HASH key size in bytes

uint32_t phase

Copy of HASH peripheral phase

hal_dma_handle_t * hdma_in

Copy of HASH input DMA handle parameters

hal_hash_cb_t p_digest_cplt_callback

Copy of HASH digest computation completion callback

hal_hash_cb_t p_input_cplt_callback

Copy of HASH input FIFO transfer completed callback

hal_hash_cb_t p_error_callback

Copy of HASH error callback

hal_hash_cb_t p_abort_cplt_callback

Copy of HASH abort callback

hal_hash_cb_t p_suspend_cplt_callback

Copy of HASH suspend callback

const uint8_t * p_input_buff

Copy of pointer to input buffer

uint8_t * p_output_buff

Copy of pointer to output buffer (digest)

uint8_t * p_hmac_key_buff

Copy of pointer to key buffer (HMAC only)

uint8_t * p_hmac_key_saved

Copy of pointer to key buffer (HMAC only)

uint8_t dma_operation_active_flag

Copy of DMA flag operation ongoing

hal_hash_state_t previous_state

Copy of HASH peripheral state

struct hal_hash_handle_s
#include <stm32c5xx_hal_hash.h>

HASH handle structure definition

Public Members

hal_hash_t instance

HASH register base address

uint32_t input_size_byte

Buffer input size to be processed in bytes

uint32_t output_size_byte

Buffer output size to be processed in bytes

uint32_t * p_output_hash_size_byte

Buffer output size processed in bytes

uint32_t input_data_count_byte

Input data counter

uint32_t digest_size_byte

HASH digest size in bytes of selected algorithm

uint32_t block_size_byte

HASH block size in bytes of selected algorithm

uint32_t key_size_byte

HASH key size in bytes

volatile uint32_t suspend_request

HASH peripheral suspension request flag

uint32_t phase

HASH peripheral phase

volatile uint32_t last_error_codes

HASH last error codes

const uint8_t * p_input_buff

Pointer to input buffer

uint8_t * p_output_buff

Pointer to output buffer (digest)

uint8_t * p_hmac_key_buff

Pointer to key buffer (HMAC only)

uint8_t * p_hmac_key_saved

Pointer to store the key buffer (HMAC only)

uint8_t remain_bytes [ 3 ]

HASH remaining bytes

uint8_t remain_bytes_number

Number of remaining HASH bytes

uint8_t dma_operation_active_flag

DMA flag operation ongoing

volatile hal_hash_state_t global_state

HASH peripheral state

volatile hal_hash_state_t previous_state

HASH peripheral previous state

hal_dma_handle_t * hdma_in

HASH input DMA handle parameters

const void * p_user_data

HASH user data

hal_hash_cb_t p_input_cplt_callback

HASH input completion callback

hal_hash_cb_t p_digest_cplt_callback

HASH digest computation completion callback

hal_hash_cb_t p_error_callback

HASH error callback

hal_hash_cb_t p_suspend_cplt_callback

HASH suspend callback

hal_hash_cb_t p_abort_cplt_callback

HASH abort callback