diff options
author | Adrian Vovk <adrianvovk@gmail.com> | 2024-01-13 17:08:12 +0100 |
---|---|---|
committer | Adrian Vovk <adrianvovk@gmail.com> | 2024-02-13 19:59:27 +0100 |
commit | 0bac442251a189fd9add36e964c86d2358c41212 (patch) | |
tree | f854ca3b197e4c877633bdb1ecdd4e4099279bfb /src/basic/sha256.h | |
parent | fundamental: Add overflow-safe math helpers (diff) | |
download | systemd-0bac442251a189fd9add36e964c86d2358c41212.tar.xz systemd-0bac442251a189fd9add36e964c86d2358c41212.zip |
basic: Add some sha256 helper functions
Adds a util function to sha256 an open fd (moved from dissect). Also
adds functions to check if a string contains a valid sha256 hash, and
parse it into a sha256 array.
Diffstat (limited to 'src/basic/sha256.h')
-rw-r--r-- | src/basic/sha256.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/basic/sha256.h b/src/basic/sha256.h new file mode 100644 index 0000000000..95bac1bc1d --- /dev/null +++ b/src/basic/sha256.h @@ -0,0 +1,16 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ + +#pragma once + +#include <stdint.h> + +#include "sha256-fundamental.h" +#include "string-util.h" + +int sha256_fd(int fd, uint64_t max_size, uint8_t ret[static SHA256_DIGEST_SIZE]); + +int parse_sha256(const char *s, uint8_t res[static SHA256_DIGEST_SIZE]); + +static inline bool sha256_is_valid(const char *s) { + return s && in_charset(s, HEXDIGITS) && (strlen(s) == SHA256_DIGEST_SIZE * 2); +} |