1ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#ifndef MD5_H 2ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define MD5_H 3ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe 4ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#include <stdint.h> 5ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe 6ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define MD5_DIGEST_SIZE 16 7ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define MD5_HMAC_BLOCK_SIZE 64 8ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define MD5_BLOCK_WORDS 16 9ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define MD5_HASH_WORDS 4 10ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe 11ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define F1(x, y, z) (z ^ (x & (y ^ z))) 12ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define F2(x, y, z) F1(z, x, y) 13ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define F3(x, y, z) (x ^ y ^ z) 14ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define F4(x, y, z) (y ^ (x | ~z)) 15ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe 16ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define MD5STEP(f, w, x, y, z, in, s) \ 17ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe (w += f(x, y, z) + in, w = (w<<s | w>>(32-s)) + x) 18ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe 1925dfa848abbb6c35b4d45fabd5a8e82cb77fb285Jens Axboestruct fio_md5_ctx { 208c432325c3df2075a77b27eab8a87704cf7b48eeJens Axboe uint32_t *hash; 21ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe uint32_t block[MD5_BLOCK_WORDS]; 22ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe uint64_t byte_count; 23ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe}; 24ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe 2525dfa848abbb6c35b4d45fabd5a8e82cb77fb285Jens Axboeextern void fio_md5_update(struct fio_md5_ctx *, const uint8_t *, unsigned int); 2625dfa848abbb6c35b4d45fabd5a8e82cb77fb285Jens Axboeextern void fio_md5_init(struct fio_md5_ctx *); 27ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe 28ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#endif 29