<tag>auth_param ntlm, basic, digest</tag>
<p>BASIC, DIGEST: New parameter option <em>utf8 on|off</em> to permit helpers to selectively process UTF-8 characters even though
HTTP accepts only ISO-8859-1.</p>
+ <p>NCSA authenticator updated to reject passwords with more than 8 characters when using DES encryption method.
<p>NTLM: The helper binary bundled with Squid under the name <em>ntlm_auth</em> has been renamed to accurately reflect
its real behavior and to prevent confusion with the more useful Samba helper using the same name.
<p>Despite being used for NTLM, the helper does not in fact provide true NTLM function. What it does provide is
This password file can be manipulated using
.B htpasswd.
.
+.PP
+.This authenticator accepts:
+.BR
+* MD5 - with optional salt and magic strings
+.BR
+* DES - for passwords 8 characters or less in length
+.
.SH OPTIONS
The only parameter is the password file.
It must have permissions to be read by the user that Squid is running as.
.B basic_ncsa_auth
must have access to the password file to be executed.
.
+.SH KNOWN ISSUES
+.PP
+DES functionality (used by htpasswd by default) silently truncates passwords to 8 characters.
+Allowing login with password values shorter than the one desired.
+This authenticator will reject login with long passwords when using DES.
+.
.SH AUTHOR
This manual was written by
.if !'po4a'hide' .I Amos Jeffries <amosjeffries@squid-cache.org>
* - extra fields in the password file are ignored; this makes it
* possible to use a Unix password file but I do not recommend that.
*
+ * MD5 without salt and magic strings - Added by Ramon de Carvalho and Rodrigo Rubira Branco
*/
#include "config.h"
if (u == NULL) {
SEND_ERR("No such user");
#if HAVE_CRYPT
- } else if (strcmp(u->passwd, (char *) crypt(passwd, u->passwd)) == 0) {
+ } else if (strlen(passwd) <= 8 && strcmp(u->passwd, (char *) crypt(passwd, u->passwd)) == 0) {
+ // Bug 3107: crypt() DES functionality silently truncates long passwords.
SEND_OK("");
#endif
} else if (strcmp(u->passwd, (char *) crypt_md5(passwd, u->passwd)) == 0) {
SEND_OK("");
- } else if (strcmp(u->passwd, (char *) md5sum(passwd)) == 0) { /* md5 without salt and magic strings - Added by Ramon de Carvalho and Rodrigo Rubira Branco */
+ } else if (strcmp(u->passwd, (char *) md5sum(passwd)) == 0) {
SEND_OK("");
} else {
SEND_ERR("Wrong password");