e18088451d
Also, make the writing of the SHA1 as a end-header be conditional: not every user will necessarily want to write the SHA1 to the file itself, even though current users do (but we migh end up using the same helper functions for the object files themselves, that don't do this). This also makes the packed index file contain the SHA1 of the packed data file at the end (just before its own SHA1). That way you can validate the pairing of the two if you want to.
19 lines
469 B
C
19 lines
469 B
C
#ifndef CSUM_FILE_H
|
|
#define CSUM_FILE_H
|
|
|
|
/* A SHA1-protected file */
|
|
struct sha1file {
|
|
int fd, error;
|
|
unsigned int offset, namelen;
|
|
SHA_CTX ctx;
|
|
char name[PATH_MAX];
|
|
unsigned char buffer[8192];
|
|
};
|
|
|
|
extern struct sha1file *sha1create(const char *fmt, ...);
|
|
extern int sha1close(struct sha1file *, unsigned char *, int);
|
|
extern int sha1write(struct sha1file *, void *, unsigned int);
|
|
extern int sha1write_compressed(struct sha1file *, void *, unsigned int);
|
|
|
|
#endif
|