[IRCServices] ircservices-5.0.57 convert-db utility crashes when converting from anope db.

Gabriel Baez gabriel.baez at solid-ircd.com
Tue Jun 20 23:02:02 PDT 2006


This worked, thank you.


>      Okay, I took a look and (with a pointer from Craig McLure) discovered
> that Anope still has the bug present in old versions of IRC Services (and
> fixed in Services 4.5) which causes passwords to be encrypted incorrectly.
> Try applying the patch below to your copy of Services; if it works, I'll
> release a new version of Services with the patch included.
>
>   --Andrew Church
>     achurch at achurch.org
>     http://achurch.org/
>
> ---------------------------------------------------------------------------
>
> Index: defs.h
> ===================================================================
> RCS file: /var/local/cvsroot/ircservices/defs.h,v
> retrieving revision 2.29.2.3
> diff -u -r2.29.2.3 defs.h
> --- defs.h	8 Jan 2006 16:48:11 -0000	2.29.2.3
> +++ defs.h	21 Jun 2006 04:05:47 -0000
> @@ -41,6 +41,14 @@
>   * only).  These commands are undocumented; "use the source, Luke!" */
>  #define DEBUG_COMMANDS
>
> +
> +/******** Other configuration ********/
> +
> +/* Define this to enable compatibility mode for encrypted passwords as
> + * used in the Epona and Anope (through at least version 1.7.14)
> programs.
> + * Note that this may have a detrimental effect on password security. */
> +#define ANOPE_MD5_HACK
> +
>  /*************************************************************************/
>  /******************* END OF USER-CONFIGURABLE SECTION
> ********************/
>  /*************************************************************************/
> Index: modules/encryption/md5.c
> ===================================================================
> RCS file: /var/local/cvsroot/ircservices/modules/encryption/md5.c,v
> retrieving revision 2.11.2.4
> diff -u -r2.11.2.4 md5.c
> --- modules/encryption/md5.c	8 Jan 2006 16:48:13 -0000	2.11.2.4
> +++ modules/encryption/md5.c	21 Jun 2006 04:05:47 -0000
> @@ -16,6 +16,10 @@
>
>  static Module *module;
>
> +#ifdef ANOPE_MD5_HACK
> +# define XTOI(c) ((c)>9 ? (c)-'A'+10 : (c)-'0')
> +#endif
> +
>  /*************************************************************************/
>
>  /* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
> @@ -335,8 +339,6 @@
>
>  /* Our own high-level routines.  See encrypt.h for documentation. */
>
> -#define XTOI(c) ((c)>9 ? (c)-'A'+10 : (c)-'0')
> -
>  static int md5_encrypt(const char *src, int len, char *dest, int size)
>  {
>      MD5_CTX context;
> @@ -376,11 +378,21 @@
>  static int md5_check_password(const char *plaintext, const char
> *password)
>  {
>      char buf[BUFSIZE];
> +#ifdef ANOPE_MD5_HACK
> +    char tmpbuf[8];
> +    int i;
> +#endif
>
>      if (encrypt(plaintext, strlen(plaintext), buf, sizeof(buf)) < 0)
>  	return -1;
>      if (memcmp(buf, password, 16) == 0)
>  	return 1;
> +#ifdef ANOPE_MD5_HACK
> +    for (i = 0; i < 16; i += 2)
> +	tmpbuf[i/2] = XTOI(buf[i])<<4 | XTOI(buf[i+1]);
> +    if (memcmp(tmpbuf, password, 8) == 0)
> +	return 1;
> +#endif
>      return 0;
>  }
>
> ------------------------------------------------------------------
> To unsubscribe or change your subscription options, visit:
> http://lists.ircservices.za.net/mailman/listinfo/ircservices
>