/*
* lmd5.h
* message digest library for Lua 5.1 based on OpenSSL
* Luiz Henrique de Figueiredo <lhf@tecgraf.puc-rio.br>
* 30 Apr 2010 09:08:15
* This code is hereby placed in the public domain.
*/
#undef MYNAME
#undef luaopen_md5
#undef AUTHOR
#undef MD5_CTX
#undef MD5Init
#undef MD5Update
#undef MD5Final
#undef N
#undef Pget
#undef Pnew
#undef Lclone
#undef Ldigest
#undef Lnew
#undef Lreset
#undef Ltostring
#undef Lupdate
#undef R
#ifdef USE_MD2_OPENSSL
#include <openssl/md2.h>
#define MYNAME "md2"
#define luaopen_md5 luaopen_md2
#define AUTHOR "OpenSSL"
#define MD5_CTX MD2_CTX
#define MD5Init MD2_Init
#define MD5Update MD2_Update
#define MD5Final MD2_Final
#define N MD2_DIGEST_LENGTH
#ifdef USE_MULTIPLE
#define Pget md2_Pget
#define Pnew md2_Pnew
#define Lclone md2_Lclone
#define Ldigest md2_Ldigest
#define Lnew md2_Lnew
#define Lreset md2_Lreset
#define Ltostring md2_Ltostring
#define Lupdate md2_Lupdate
#define R md2_R
#endif
#endif
#ifdef USE_MD4_OPENSSL
#include <openssl/md4.h>
#define MYNAME "md4"
#define luaopen_md5 luaopen_md4
#define AUTHOR "OpenSSL"
#define MD5_CTX MD4_CTX
#define MD5Init MD4_Init
#define MD5Update MD4_Update
#define MD5Final MD4_Final
#define N MD4_DIGEST_LENGTH
#ifdef USE_MULTIPLE
#define Pget md4_Pget
#define Pnew md4_Pnew
#define Lclone md4_Lclone
#define Ldigest md4_Ldigest
#define Lnew md4_Lnew
#define Lreset md4_Lreset
#define Ltostring md4_Ltostring
#define Lupdate md4_Lupdate
#define R md4_R
#endif
#endif
#ifdef USE_MD5_OPENSSL
#include <openssl/md5.h>
#define MYNAME "md5"
#define luaopen_md5 luaopen_md5
#define AUTHOR "OpenSSL"
#define MD5_CTX MD5_CTX
#define MD5Init MD5_Init
#define MD5Update MD5_Update
#define MD5Final MD5_Final
#define N MD5_DIGEST_LENGTH
#ifdef USE_MULTIPLE
#define Pget md5_Pget
#define Pnew md5_Pnew
#define Lclone md5_Lclone
#define Ldigest md5_Ldigest
#define Lnew md5_Lnew
#define Lreset md5_Lreset
#define Ltostring md5_Ltostring
#define Lupdate md5_Lupdate
#define R md5_R
#endif
#endif
#ifdef USE_SHA1_OPENSSL
#include <openssl/sha.h>
#define MYNAME "sha1"
#define luaopen_md5 luaopen_sha1
#define AUTHOR "OpenSSL"
#define MD5_CTX SHA_CTX
#define MD5Init SHA1_Init
#define MD5Update SHA1_Update
#define MD5Final SHA1_Final
#define N SHA_DIGEST_LENGTH
#ifdef USE_MULTIPLE
#define Pget sha1_Pget
#define Pnew sha1_Pnew
#define Lclone sha1_Lclone
#define Ldigest sha1_Ldigest
#define Lnew sha1_Lnew
#define Lreset sha1_Lreset
#define Ltostring sha1_Ltostring
#define Lupdate sha1_Lupdate
#define R sha1_R
#endif
#endif
#ifdef USE_SHA224_OPENSSL
#define SHA224_CTX SHA256_CTX
#include <openssl/sha.h>
#define MYNAME "sha224"
#define luaopen_md5 luaopen_sha224
#define AUTHOR "OpenSSL"
#define MD5_CTX SHA224_CTX
#define MD5Init SHA224_Init
#define MD5Update SHA224_Update
#define MD5Final SHA224_Final
#define N SHA224_DIGEST_LENGTH
#ifdef USE_MULTIPLE
#define Pget sha224_Pget
#define Pnew sha224_Pnew
#define Lclone sha224_Lclone
#define Ldigest sha224_Ldigest
#define Lnew sha224_Lnew
#define Lreset sha224_Lreset
#define Ltostring sha224_Ltostring
#define Lupdate sha224_Lupdate
#define R sha224_R
#endif
#endif
#ifdef USE_SHA256_OPENSSL
#include <openssl/sha.h>
#define MYNAME "sha256"
#define luaopen_md5 luaopen_sha256
#define AUTHOR "OpenSSL"
#define MD5_CTX SHA256_CTX
#define MD5Init SHA256_Init
#define MD5Update SHA256_Update
#define MD5Final SHA256_Final
#define N SHA256_DIGEST_LENGTH
#ifdef USE_MULTIPLE
#define Pget sha256_Pget
#define Pnew sha256_Pnew
#define Lclone sha256_Lclone
#define Ldigest sha256_Ldigest
#define Lnew sha256_Lnew
#define Lreset sha256_Lreset
#define Ltostring sha256_Ltostring
#define Lupdate sha256_Lupdate
#define R sha256_R
#endif
#endif
#ifdef USE_SHA384_OPENSSL
#define SHA384_CTX SHA512_CTX
#include <openssl/sha.h>
#define MYNAME "sha384"
#define luaopen_md5 luaopen_sha384
#define AUTHOR "OpenSSL"
#define MD5_CTX SHA384_CTX
#define MD5Init SHA384_Init
#define MD5Update SHA384_Update
#define MD5Final SHA384_Final
#define N SHA384_DIGEST_LENGTH
#ifdef USE_MULTIPLE
#define Pget sha384_Pget
#define Pnew sha384_Pnew
#define Lclone sha384_Lclone
#define Ldigest sha384_Ldigest
#define Lnew sha384_Lnew
#define Lreset sha384_Lreset
#define Ltostring sha384_Ltostring
#define Lupdate sha384_Lupdate
#define R sha384_R
#endif
#endif
#ifdef USE_SHA512_OPENSSL
#include <openssl/sha.h>
#define MYNAME "sha512"
#define luaopen_md5 luaopen_sha512
#define AUTHOR "OpenSSL"
#define MD5_CTX SHA512_CTX
#define MD5Init SHA512_Init
#define MD5Update SHA512_Update
#define MD5Final SHA512_Final
#define N SHA512_DIGEST_LENGTH
#ifdef USE_MULTIPLE
#define Pget sha512_Pget
#define Pnew sha512_Pnew
#define Lclone sha512_Lclone
#define Ldigest sha512_Ldigest
#define Lnew sha512_Lnew
#define Lreset sha512_Lreset
#define Ltostring sha512_Ltostring
#define Lupdate sha512_Lupdate
#define R sha512_R
#endif
#endif
#ifdef USE_RIPEMD160_OPENSSL
#include <openssl/ripemd.h>
#define MYNAME "ripemd160"
#define luaopen_md5 luaopen_ripemd160
#define AUTHOR "OpenSSL"
#define MD5_CTX RIPEMD160_CTX
#define MD5Init RIPEMD160_Init
#define MD5Update RIPEMD160_Update
#define MD5Final RIPEMD160_Final
#define N RIPEMD160_DIGEST_LENGTH
#ifdef USE_MULTIPLE
#define Pget ripemd160_Pget
#define Pnew ripemd160_Pnew
#define Lclone ripemd160_Lclone
#define Ldigest ripemd160_Ldigest
#define Lnew ripemd160_Lnew
#define Lreset ripemd160_Lreset
#define Ltostring ripemd160_Ltostring
#define Lupdate ripemd160_Lupdate
#define R ripemd160_R
#endif
#endif