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