]>
git.ipfire.org Git - thirdparty/util-linux.git/blob - include/fileeq.h
3 * No copyright is claimed. This code is in the public domain; do with
6 #ifndef UTIL_LINUX_FILEEQ
7 #define UTIL_LINUX_FILEEQ
13 #if defined(__linux__) && defined(HAVE_LINUX_IF_ALG_H)
14 # define USE_FILEEQ_CRYPTOAPI 1
17 /* Number of bytes from the beginning of the file we always
18 * compare by memcmp() */
19 #define UL_FILEEQ_INTROSIZ 32
21 struct ul_fileeq_data
{
22 unsigned char intro
[UL_FILEEQ_INTROSIZ
];
23 unsigned char *blocks
;
32 int fd_api
; /* Crypto socket */
33 int fd_cip
; /* Cipher handler */
38 const struct ul_fileeq_method
*method
;
40 /* UL_FILEEQ_MEMCMP buffers */
43 unsigned char *buf_last
;
46 extern int ul_fileeq_init(struct ul_fileeq
*eq
, const char *method
);
47 extern void ul_fileeq_deinit(struct ul_fileeq
*eq
);
50 extern int ul_fileeq_data_associated(struct ul_fileeq_data
*data
);
51 extern void ul_fileeq_data_close_file(struct ul_fileeq_data
*data
);
52 extern void ul_fileeq_data_init(struct ul_fileeq_data
*data
);
53 extern void ul_fileeq_data_deinit(struct ul_fileeq_data
*data
);
54 extern void ul_fileeq_data_set_file(struct ul_fileeq_data
*data
,
56 extern size_t ul_fileeq_set_size(struct ul_fileeq
*eq
, uint64_t filesiz
,
57 size_t readsiz
, size_t memsiz
);
59 extern int ul_fileeq(struct ul_fileeq
*eq
,
60 struct ul_fileeq_data
*a
, struct ul_fileeq_data
*b
);
62 #endif /* UTIL_LINUX_FILEEQ */