1132451Sroberto/* 2132451Sroberto * ntp_md5.h: deal with md5.h headers 3290000Sglebius * 4290000Sglebius * Use the system MD5 if available, otherwise libisc's. 5132451Sroberto */ 6290000Sglebius#ifndef NTP_MD5_H 7290000Sglebius#define NTP_MD5_H 8132451Sroberto 9290000Sglebius#ifdef OPENSSL 10290000Sglebius# include "openssl/evp.h" 11290000Sglebius#else /* !OPENSSL follows */ 12290000Sglebius/* 13290000Sglebius * Provide OpenSSL-alike MD5 API if we're not using OpenSSL 14290000Sglebius */ 15290000Sglebius# if defined HAVE_MD5_H && defined HAVE_MD5INIT 16290000Sglebius# include <md5.h> 17290000Sglebius# else 18290000Sglebius# include "isc/md5.h" 19290000Sglebius typedef isc_md5_t MD5_CTX; 20290000Sglebius# define MD5Init(c) isc_md5_init(c) 21290000Sglebius# define MD5Update(c, p, s) isc_md5_update(c, p, s) 22290000Sglebius# define MD5Final(d, c) isc_md5_final((c), (d)) /* swapped */ 23290000Sglebius# endif 24290000Sglebius 25290000Sglebius typedef MD5_CTX EVP_MD_CTX; 26290000Sglebius# define EVP_get_digestbynid(t) NULL 27290000Sglebius# define EVP_md5() NULL 28290000Sglebius# define EVP_MD_CTX_init(c) 29290000Sglebius# define EVP_MD_CTX_set_flags(c, f) 30290000Sglebius# define EVP_DigestInit(c, dt) (MD5Init(c), 1) 31290000Sglebius# define EVP_DigestInit_ex(c, dt, i) (MD5Init(c), 1) 32290000Sglebius# define EVP_DigestUpdate(c, p, s) MD5Update(c, (const void *)(p), \ 33290000Sglebius s) 34290000Sglebius# define EVP_DigestFinal(c, d, pdl) \ 35290000Sglebius do { \ 36290000Sglebius MD5Final((d), (c)); \ 37290000Sglebius *(pdl) = 16; \ 38290000Sglebius } while (0) 39290000Sglebius# endif /* !OPENSSL */ 40290000Sglebius#endif /* NTP_MD5_H */ 41