From eed2d1323441861f2d41f0ecc0a72fcc9190fa5f Mon Sep 17 00:00:00 2001 From: Thorsten Töpper Date: Sat, 7 Feb 2026 21:43:17 +0100 Subject: file processor: Copied from my small-utils project --- include/file_processor.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 include/file_processor.h (limited to 'include/file_processor.h') diff --git a/include/file_processor.h b/include/file_processor.h new file mode 100644 index 0000000..8cfb6de --- /dev/null +++ b/include/file_processor.h @@ -0,0 +1,41 @@ +/* SPDX-License-Identifier: Apache-2.0 */ + +/* Copyright 2026 Thorsten Töpper + * + * vim:ts=4:sw=4:expandtab + */ +#ifndef FILE_PROCESSOR_H +#define FILE_PROCESSOR_H + +#include + +#define DF_BYTE_SIZE_256 32 +#define DF_BYTE_SIZE_512 64 + +/* Aliases for convenience, currently all algorithms are part of the default + * provider. */ +#define DF_OSSL_BLAKE2 "BLAKE2B-512" +#define DF_OSSL_SHA256 "SHA2-256" +#define DF_OSSL_SHA512 "SHA2-512" + +/** + * information about a file + * Contains filepath, stat() results, hash values of multiple algorithms. + * TODO: Organize the paths in a global pool (list/tree/map) and only refer there + * without any free() calls triggered through the pointer in the struct. + */ +struct df_fileinfo { + char *path; /**< pointer to the path of the file */ + char *name; /**< pointer to the name of the file */ + unsigned char blake2[DF_BYTE_SIZE_512]; /**< The BLAKE2-512 hash in binary form */ + unsigned char sha256[DF_BYTE_SIZE_256]; /**< The SHA256 hash in binary form. */ + unsigned char sha512[DF_BYTE_SIZE_512]; /**< The SHA512 hash in binary form. */ + struct stat statbuf; /**< Result of lstat() call. Symlinks are to be ignored and filtered out earlier. */ +}; + + +/*=========== FUNCTIONS ===========*/ +int process_file(struct df_fileinfo *info); + +#endif + -- cgit v1.3