]> wimlib.net Git - wimlib/blob - src/sha1.h
Use public domain SHA1 code
[wimlib] / src / sha1.h
1 #ifndef _WIMLIB_SHA1_H
2 #define _WIMLIB_SHA1_H
3
4 #include "config.h"
5 #include <stdio.h>
6 #include <stddef.h>
7 #include "string.h"
8
9 #define SHA1_HASH_SIZE 20
10
11 extern const u8 empty_file_sha1sum[SHA1_HASH_SIZE];
12
13 static inline bool is_empty_file_hash(const u8 hash[SHA1_HASH_SIZE])
14 {
15         return memcmp(hash, empty_file_sha1sum, SHA1_HASH_SIZE) == 0;
16 }
17
18
19 extern int sha1sum(const char *filename, void *md);
20
21 #ifdef WITH_LIBCRYPTO
22 #include <openssl/sha.h>
23 static inline void sha1_buffer(const void *buffer, size_t len, void *md)
24 {
25         SHA1(buffer, len, md);
26 }
27 #else
28 extern void sha1_buffer(const void *buffer, size_t len, void *md);
29 #endif
30
31 #endif /* _WIMLIB_SHA1_H */