xref: /rk3399_ARM-atf/include/drivers/st/stm32_hash.h (revision 68039f2d14626adce09512871d6cde20ff45e1d9)
1b1e0b11cSLionel Debieve /*
2*68039f2dSNicolas Toromanoff  * Copyright (c) 2019-2022, STMicroelectronics - All Rights Reserved
3b1e0b11cSLionel Debieve  *
4b1e0b11cSLionel Debieve  * SPDX-License-Identifier: BSD-3-Clause
5b1e0b11cSLionel Debieve  */
6b1e0b11cSLionel Debieve 
7b1e0b11cSLionel Debieve #ifndef STM32_HASH_H
8b1e0b11cSLionel Debieve #define STM32_HASH_H
9b1e0b11cSLionel Debieve 
10*68039f2dSNicolas Toromanoff #include <stdint.h>
11*68039f2dSNicolas Toromanoff 
12b1e0b11cSLionel Debieve enum stm32_hash_algo_mode {
13*68039f2dSNicolas Toromanoff #if STM32_HASH_VER == 2
14b1e0b11cSLionel Debieve 	HASH_MD5SUM,
15*68039f2dSNicolas Toromanoff #endif
16b1e0b11cSLionel Debieve 	HASH_SHA1,
17b1e0b11cSLionel Debieve 	HASH_SHA224,
18*68039f2dSNicolas Toromanoff 	HASH_SHA256,
19*68039f2dSNicolas Toromanoff #if STM32_HASH_VER == 4
20*68039f2dSNicolas Toromanoff 	HASH_SHA384,
21*68039f2dSNicolas Toromanoff 	HASH_SHA512,
22*68039f2dSNicolas Toromanoff #endif
23b1e0b11cSLionel Debieve };
24b1e0b11cSLionel Debieve 
2519e2af79SYann Gautier int stm32_hash_update(const uint8_t *buffer, size_t length);
26b1e0b11cSLionel Debieve int stm32_hash_final(uint8_t *digest);
27b1e0b11cSLionel Debieve int stm32_hash_final_update(const uint8_t *buffer, uint32_t buf_length,
28b1e0b11cSLionel Debieve 			    uint8_t *digest);
29b1e0b11cSLionel Debieve void stm32_hash_init(enum stm32_hash_algo_mode mode);
30b1e0b11cSLionel Debieve int stm32_hash_register(void);
31b1e0b11cSLionel Debieve 
32b1e0b11cSLionel Debieve #endif /* STM32_HASH_H */
33