Subject: Re: MD5_CTX define clash (md5.h)
To: None <itojun@iijlab.net>
From: Frederick Bruckman <fredb@immanent.net>
List: current-users
Date: 07/01/2003 10:36:20
On Tue, 1 Jul 2003 itojun@iijlab.net wrote:

> >> FreeBSD's /usr/include/openssl/evp.h has
> >> #ifndef OPENSSL_NO_MD5
> >> #include <openssl/md5.h>
> >> #endif
> >> NetBSD's /usr/include/openssl/evp.h does not.
> >> The ntp configure makes use of OPENSSL_NO_MD5. But I find this a little odd.
>
> 	we have removed most of #ifndef statements in openssl include files, as
> 	they change ABI declared in header files (= bombs after linking to
> 	libcrypto).

If you use it build a libcrypto without md5, yes, but the exported
headers are not only for building the library... They were using it to
hide MD5_CTX, so as to work around the (API) namespace collision with
libc's md5.

> 	as for /usr/include/md5.h and /usr/include/openssl/md5.h, well...
> 	former one is for libc, and latter one is for libcrypto.

Indeed, it's more elegant not to include openssl-anything in any file
that uses libc's md5 routines. (This is what ntp does now.)

Frederick