#ifndef SUDO_DIGEST_H
#define SUDO_DIGEST_H
#define SUDO_DIGEST_SHA224 0
#define SUDO_DIGEST_SHA256 1
#define SUDO_DIGEST_SHA384 2
#define SUDO_DIGEST_SHA512 3
#define SUDO_DIGEST_INVALID 4
struct sudo_digest;
__dso_public struct sudo_digest *sudo_digest_alloc_v1(int digest_type);
__dso_public void sudo_digest_free_v1(struct sudo_digest *dig);
__dso_public void sudo_digest_reset_v1(struct sudo_digest *dig);
__dso_public int sudo_digest_getlen_v1(int digest_type);
__dso_public void sudo_digest_update_v1(struct sudo_digest *dig, const void *data, size_t len);
__dso_public void sudo_digest_final_v1(struct sudo_digest *dig, unsigned char *md);
#define sudo_digest_alloc(_a) sudo_digest_alloc_v1((_a))
#define sudo_digest_free(_a) sudo_digest_free_v1((_a))
#define sudo_digest_reset(_a) sudo_digest_reset_v1((_a))
#define sudo_digest_getlen(_a) sudo_digest_getlen_v1((_a))
#define sudo_digest_update(_a, _b, _c) sudo_digest_update_v1((_a), (_b), (_c))
#define sudo_digest_final(_a, _b) sudo_digest_final_v1((_a), (_b))
#endif