PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
Loading...
Searching...
No Matches
checksum.h
Go to the documentation of this file.
1/**
2 * @file checksum.h
3 * @brief Small dependency-free SHA-256 utility for persistent metadata identity.
4 */
5
6#ifndef PICURV_CHECKSUM_H
7#define PICURV_CHECKSUM_H
8
9#include <petscsys.h>
10#include <stddef.h>
11#include <stdint.h>
12
13/** @brief Incremental SHA-256 state. */
14typedef struct {
15 uint32_t state[8];
16 uint64_t bit_count;
17 unsigned char buffer[64];
20
21/**
22 * @brief Initialize an incremental SHA-256 calculation.
23 * @param[out] context Hash state to initialize.
24 */
26
27/**
28 * @brief Add bytes to an incremental SHA-256 calculation.
29 * @param[in,out] context Active hash state.
30 * @param[in] data Bytes to add.
31 * @param[in] length Number of bytes to add.
32 */
33void PicurvSHA256Update(PicurvSHA256Context *context, const void *data, size_t length);
34
35/**
36 * @brief Finish a SHA-256 calculation and return a lowercase hexadecimal digest.
37 * @param[in,out] context Active hash state.
38 * @param[out] digest_hex Null-terminated 64-character lowercase digest.
39 */
40void PicurvSHA256FinalHex(PicurvSHA256Context *context, char digest_hex[65]);
41
42/**
43 * @brief Compute the lowercase SHA-256 digest of a file.
44 * @param[in] path File to hash.
45 * @param[out] digest_hex Null-terminated 64-character lowercase digest.
46 * @return Zero on success or a PETSc filesystem error.
47 */
48PetscErrorCode PicurvSHA256File(const char *path, char digest_hex[65]);
49
50#endif /* PICURV_CHECKSUM_H */
PetscErrorCode PicurvSHA256File(const char *path, char digest_hex[65])
Compute the lowercase SHA-256 digest of a file.
Definition checksum.c:130
void PicurvSHA256Init(PicurvSHA256Context *context)
Initialize an incremental SHA-256 calculation.
Definition checksum.c:62
void PicurvSHA256Update(PicurvSHA256Context *context, const void *data, size_t length)
Add bytes to an incremental SHA-256 calculation.
Definition checksum.c:74
uint64_t bit_count
Definition checksum.h:16
void PicurvSHA256FinalHex(PicurvSHA256Context *context, char digest_hex[65])
Finish a SHA-256 calculation and return a lowercase hexadecimal digest.
Definition checksum.c:98
Incremental SHA-256 state.
Definition checksum.h:14