From: Eivind Næss Date: Wed, 28 Jul 2021 23:39:43 +0000 (-0700) Subject: Using OpenSSL for MD4 isn't compatibile how NTPasswordHash is using it. X-Git-Tag: ppp-2.5.0~63^2~1 X-Git-Url: http://git.ozlabs.org/?a=commitdiff_plain;h=9e1e5b0e4e95cf70196ba2383d371b41d4731a44;hp=49e1aff19a7ba4376b2a8387f11ff92382cef34f;p=ppp.git Using OpenSSL for MD4 isn't compatibile how NTPasswordHash is using it. Signed-off-by: Eivind Næss --- diff --git a/pppd/chap_ms.c b/pppd/chap_ms.c index 52d4890..2f31bb5 100644 --- a/pppd/chap_ms.c +++ b/pppd/chap_ms.c @@ -569,7 +569,7 @@ ascii2unicode(char ascii[], int ascii_len, u_char unicode[]) static void NTPasswordHash(u_char *secret, int secret_len, u_char hash[MD4_SIGNATURE_SIZE]) { -#ifdef __NetBSD__ +#if defined(__NetBSD__) || !defined(USE_MD4) /* NetBSD uses the libc md4 routines which take bytes instead of bits */ int mdlen = secret_len; #else @@ -578,12 +578,14 @@ NTPasswordHash(u_char *secret, int secret_len, u_char hash[MD4_SIGNATURE_SIZE]) MD4_CTX md4Context; MD4Init(&md4Context); - /* MD4Update can take at most 64 bytes at a time */ +#if !defined(USE_MD4) + /* Internal MD4Update can take at most 64 bytes at a time */ while (mdlen > 512) { MD4Update(&md4Context, secret, 512); secret += 64; mdlen -= 512; } +#endif MD4Update(&md4Context, secret, mdlen); MD4Final(hash, &md4Context);