md4.h revision c25356d5978632df6203437e1953bcb29e0c736f
02c335c23bf5fa225a467c19f2c063fb0dc7b8c3Timo Sirainen/*
ba90e657bc68a72ab3b3021e2f4a874fac9965baTimo Sirainen * This is an OpenSSL-compatible implementation of the RSA Data Security,
46552a931924c2d743f045e95b08c3ce6beda91aTimo Sirainen * Inc. MD4 Message-Digest Algorithm.
3cb26db7f4756b71ba06c6e4950fa4f8ce7fad66Timo Sirainen *
ba90e657bc68a72ab3b3021e2f4a874fac9965baTimo Sirainen * Written by Solar Designer <solar@openwall.com> in 2001, and placed in
f30577ff7cf29858f1878abe963b4f40a436434fTimo Sirainen * the public domain. See md4.c for more information.
f30577ff7cf29858f1878abe963b4f40a436434fTimo Sirainen */
ccef83820a01bb37ad48653a05a9c5aa6560826aTimo Sirainen
ba90e657bc68a72ab3b3021e2f4a874fac9965baTimo Sirainen#ifndef MD4_H
45155bb1250cf5a120278f349465aded513a100fTimo Sirainen#define MD4_H
f30577ff7cf29858f1878abe963b4f40a436434fTimo Sirainen
de754cb78f75e8b3b994cddafe41c9ed1467c33dTimo Sirainen#define MD4_RESULTLEN (128/8)
0af9ef2e9bb71a426bba236e74ceec30be699fb7Timo Sirainen
e3a838c80f54f024115fade93c6c87a0998f1fabTimo Sirainenstruct md4_context {
8372fc7efb6d64dff2e5f55fb4a3822c56869cfeTimo Sirainen uint_fast32_t lo, hi;
ba90e657bc68a72ab3b3021e2f4a874fac9965baTimo Sirainen uint_fast32_t a, b, c, d;
ba90e657bc68a72ab3b3021e2f4a874fac9965baTimo Sirainen unsigned char buffer[64];
ba90e657bc68a72ab3b3021e2f4a874fac9965baTimo Sirainen uint_fast32_t block[MD4_RESULTLEN];
3cb26db7f4756b71ba06c6e4950fa4f8ce7fad66Timo Sirainen};
3612ee5c737954d5fb88fd1775aad80f7bf1dc4eTimo Sirainen
3612ee5c737954d5fb88fd1775aad80f7bf1dc4eTimo Sirainenvoid md4_init(struct md4_context *ctx);
3612ee5c737954d5fb88fd1775aad80f7bf1dc4eTimo Sirainenvoid md4_update(struct md4_context *ctx, const void *data, size_t size);
3612ee5c737954d5fb88fd1775aad80f7bf1dc4eTimo Sirainenvoid md4_final(struct md4_context *ctx, unsigned char result[MD4_RESULTLEN]);
3612ee5c737954d5fb88fd1775aad80f7bf1dc4eTimo Sirainen
3612ee5c737954d5fb88fd1775aad80f7bf1dc4eTimo Sirainenvoid md4_get_digest(const void *data, size_t size,
3612ee5c737954d5fb88fd1775aad80f7bf1dc4eTimo Sirainen unsigned char result[MD4_RESULTLEN]);
3612ee5c737954d5fb88fd1775aad80f7bf1dc4eTimo Sirainen
3612ee5c737954d5fb88fd1775aad80f7bf1dc4eTimo Sirainen#endif
3612ee5c737954d5fb88fd1775aad80f7bf1dc4eTimo Sirainen