Branch data Line data Source code
1 : : /* SPDX-License-Identifier: LGPL-2.1+ */ 2 : : 3 : : #pragma once 4 : : 5 : : #include <errno.h> 6 : : #include <stdbool.h> 7 : : #include <stddef.h> 8 : : 9 : : #if HAVE_GCRYPT 10 : : #include <gcrypt.h> 11 : : 12 : : #include "macro.h" 13 : : 14 : : void initialize_libgcrypt(bool secmem); 15 : : int string_hashsum(const char *s, size_t len, int md_algorithm, char **out); 16 : : 17 [ + + ]: 40 : DEFINE_TRIVIAL_CLEANUP_FUNC(gcry_md_hd_t, gcry_md_close); 18 : : #endif 19 : : 20 : 0 : static inline int string_hashsum_sha224(const char *s, size_t len, char **out) { 21 : : #if HAVE_GCRYPT 22 : 0 : return string_hashsum(s, len, GCRY_MD_SHA224, out); 23 : : #else 24 : : return -EOPNOTSUPP; 25 : : #endif 26 : : } 27 : : 28 : 0 : static inline int string_hashsum_sha256(const char *s, size_t len, char **out) { 29 : : #if HAVE_GCRYPT 30 : 0 : return string_hashsum(s, len, GCRY_MD_SHA256, out); 31 : : #else 32 : : return -EOPNOTSUPP; 33 : : #endif 34 : : }