Re: [RFC] use libnettle for crypto

From: Henrik Nordström <henrik_at_henriknordstrom.net>
Date: Tue, 11 Mar 2014 16:45:03 +0100

tis 2014-03-11 klockan 09:53 +0200 skrev Tsantilas Christos:

> No objection, just to note that these algorithms are implemented in
> openssl library too and squid already has dependencies to openSSL.

And in Squid-2 used OpenSSL MD5 if linked to OpenSSL, or some system MD5
implementation (i.e. Solaris).

From squid-2 squid_md5.h:

/*
 * If Squid is compiled with OpenSSL then we use the MD5 routines
 * from there via some wrapper macros, and the rest of this file is ignored..
 */

#if USE_OPENSSL && HAVE_OPENSSL_MD5_H
#define USE_SQUID_MD5 0
#include <openssl/md5.h>

/* Hack to adopt Squid to the OpenSSL syntax */
#define SQUID_MD5_DIGEST_LENGTH MD5_DIGEST_LENGTH

#define SQUID_MD5Init MD5_Init
#define SQUID_MD5Update MD5_Update
#define SQUID_MD5Final MD5_Final
#define SQUID_MD5_CTX MD5_CTX

#elif USE_OPENSSL && !HAVE_OPENSSL_MD5_H
#error Cannot find OpenSSL MD5 headers

#elif (HAVE_SYS_MD5_H || HAVE_MD5_H) && HAVE_MD5INIT
/*
 * Solaris 10 provides MD5 as part of the system.
 */
#if HAVE_MD5_H
#include <md5.h>
#else
#include <sys/md5.h>
#endif

/*
 * They also define SQUID_MD5_CTX with different field names
 * fortunately we do not access it directly in the squid code.
 */

#define SQUID_MD5Init MD5Init
#define SQUID_MD5Update MD5Update
#define SQUID_MD5Final MD5Final
#define SQUID_MD5_CTX MD5_CTX

#ifdef MD5_DIGEST_LENGTH
#define SQUID_MD5_DIGEST_LENGTH MD5_DIGEST_LENGTH
#else
#define SQUID_MD5_DIGEST_LENGTH 16
#endif

#else /* No system MD5 code found */

> The API provided by nettle is very similar to openSSL related API.

Which is very similar to the reference implementation shipped with
Squid.

Regards
Henrik
Received on Tue Mar 11 2014 - 15:45:10 MDT

This archive was generated by hypermail 2.2.0 : Tue Mar 11 2014 - 12:00:13 MDT