+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
AUX 2.8.1/12_mod_auth_mysql.conf 3566 RMD160 23d0039dabd61e5b526793791521b232c551cd6e SHA1 daa9f3eb5f84741e8a727ba1e7989a99affd4660 SHA256 545a3bea899690afbd4b739b07150f7fb8414c777c8527687b5d95ab0deed582
MD5 d6baa28feeb088701ed677185d61b93d files/2.8.1/12_mod_auth_mysql.conf 3566
RMD160 23d0039dabd61e5b526793791521b232c551cd6e files/2.8.1/12_mod_auth_mysql.conf 3566
SHA256 545a3bea899690afbd4b739b07150f7fb8414c777c8527687b5d95ab0deed582 files/2.8.1/12_mod_auth_mysql.conf 3566
+AUX mod_auth_mysql-3.0.0-apache-2.2.patch 5919 RMD160 e478e80251f790b2cf26e66ed3c58a73cd7cd9e0 SHA1 809938d6e15d0eb2daef31876fba41632e641e0e SHA256 ff8ec4537ea365cc365adaf5118165e5f655fdc6d5359f2200ccce2c96d836ff
+MD5 946b8d5a75359850b36293194db5d634 files/mod_auth_mysql-3.0.0-apache-2.2.patch 5919
+RMD160 e478e80251f790b2cf26e66ed3c58a73cd7cd9e0 files/mod_auth_mysql-3.0.0-apache-2.2.patch 5919
+SHA256 ff8ec4537ea365cc365adaf5118165e5f655fdc6d5359f2200ccce2c96d836ff files/mod_auth_mysql-3.0.0-apache-2.2.patch 5919
+AUX mod_auth_mysql-3.0.0-htpasswd2-auth-style.patch 1686 RMD160 08b2912658033b725f21ef4dc1a784fbf21d4daa SHA1 42778fbee4fd313837f21eddbcf8c1ffd90fafd4 SHA256 c4a056b01b6bdd8aab1e37d9e7bf6e621cab1b9de49bccaae197a343f6ee4370
+MD5 3d91692af8b78ef37bc5343194d1ab2c files/mod_auth_mysql-3.0.0-htpasswd2-auth-style.patch 1686
+RMD160 08b2912658033b725f21ef4dc1a784fbf21d4daa files/mod_auth_mysql-3.0.0-htpasswd2-auth-style.patch 1686
+SHA256 c4a056b01b6bdd8aab1e37d9e7bf6e621cab1b9de49bccaae197a343f6ee4370 files/mod_auth_mysql-3.0.0-htpasswd2-auth-style.patch 1686
DIST mod_auth_mysql-3.0.0.tar.gz 19257 RMD160 ef68d6ec7c99c4059a38ba74f41c22e2f88f3863 SHA1 885dd0bfc64210d32e6705fdb10b2c0ca831a27c SHA256 56da2e386583548f2fd9976101633f028d5d4649b46f428ff1d0dd1639efbad4
EBUILD mod_auth_mysql-3.0.0-r1.ebuild 1208 RMD160 8a111ed8be9acb8f8ff090a45f2c7f7f48863511 SHA1 4a0d6fc5ed8b075ca3de24d9f5e2c0fb27c197dc SHA256 c4ef339e147d20d7a9f677c5e03f74c33d7ed12efc6a315a09c1ba8ff5b7506d
MD5 71ed2ad791392fc46a2c6b49a1dc5b69 mod_auth_mysql-3.0.0-r1.ebuild 1208
RMD160 8a111ed8be9acb8f8ff090a45f2c7f7f48863511 mod_auth_mysql-3.0.0-r1.ebuild 1208
SHA256 c4ef339e147d20d7a9f677c5e03f74c33d7ed12efc6a315a09c1ba8ff5b7506d mod_auth_mysql-3.0.0-r1.ebuild 1208
-MISC ChangeLog 3721 RMD160 126a844b88837b220a33192832445b67a83a58ad SHA1 92f2505daacf6a2a49dc3c90d111d5aa006298a6 SHA256 69fd7fc1aad9d264c2fabd7a959debfae99c65b9f0ac7fe90185bd800b68ea62
-MD5 fdc2911743f3ec7342ead08906a8baad ChangeLog 3721
-RMD160 126a844b88837b220a33192832445b67a83a58ad ChangeLog 3721
-SHA256 69fd7fc1aad9d264c2fabd7a959debfae99c65b9f0ac7fe90185bd800b68ea62 ChangeLog 3721
+EBUILD mod_auth_mysql-3.0.0-r2.ebuild 1398 RMD160 4153f287df945bce42e5a72f89ab0458c556ccc6 SHA1 d87d63151db7aecb8f0deb3779b2855d1d3a7727 SHA256 890e45fcaf93514e2472fdeee99de5d5956ebaf85b2f6956d91f76328a843738
+MD5 f8e4536aa653a0d0d474879eafb72706 mod_auth_mysql-3.0.0-r2.ebuild 1398
+RMD160 4153f287df945bce42e5a72f89ab0458c556ccc6 mod_auth_mysql-3.0.0-r2.ebuild 1398
+SHA256 890e45fcaf93514e2472fdeee99de5d5956ebaf85b2f6956d91f76328a843738 mod_auth_mysql-3.0.0-r2.ebuild 1398
+MISC ChangeLog 4040 RMD160 e41d916611937cdc0b1ada6c46736d22657f841b SHA1 2f6061befeb2924f1607afd4632ad3d97a24b777 SHA256 5bbea63c8e4506c0578466644de912dd9ada6506e3c7bfadbb6a0627e39608c4
+MD5 29f1d550058dae0cc120ca9bd46b2da1 ChangeLog 4040
+RMD160 e41d916611937cdc0b1ada6c46736d22657f841b ChangeLog 4040
+SHA256 5bbea63c8e4506c0578466644de912dd9ada6506e3c7bfadbb6a0627e39608c4 ChangeLog 4040
MISC metadata.xml 180 RMD160 b762599c4a9e042758cf4e58cf968d0dfaf37c8b SHA1 d3170a92499dc385c738add0d516d840e74b6415 SHA256 325b6e1d31edfdcaf7d563f03276382d77e6edf58d8f7d653086b7e726792c51
MD5 b821e26d622d74f6ce77d24ef5fed492 metadata.xml 180
RMD160 b762599c4a9e042758cf4e58cf968d0dfaf37c8b metadata.xml 180
MD5 cf735f899a63217e7f240b412e718a2c files/digest-mod_auth_mysql-3.0.0-r1 259
RMD160 20e33e33c83e428507b0a94b824aac39c2c989d1 files/digest-mod_auth_mysql-3.0.0-r1 259
SHA256 7fb0f2919dde6fe5282ca3665ce7672d0cce01a2f0c414ad0d1c8c9e9d119df1 files/digest-mod_auth_mysql-3.0.0-r1 259
+MD5 cf735f899a63217e7f240b412e718a2c files/digest-mod_auth_mysql-3.0.0-r2 259
+RMD160 20e33e33c83e428507b0a94b824aac39c2c989d1 files/digest-mod_auth_mysql-3.0.0-r2 259
+SHA256 7fb0f2919dde6fe5282ca3665ce7672d0cce01a2f0c414ad0d1c8c9e9d119df1 files/digest-mod_auth_mysql-3.0.0-r2 259
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.1 (GNU/Linux)
+
+iD8DBQFFpAjbyuNVb5qfaOYRAip1AJ4ozz19bsn5M7XhHe1UyGAiMyWZbgCgh9kr
+QLviVOvmIeskyEhSLWkJrDo=
+=7VGG
+-----END PGP SIGNATURE-----
--- /dev/null
+Index: mod_auth_mysql-3.0.0/mod_auth_mysql.c
+===================================================================
+--- mod_auth_mysql-3.0.0.orig/mod_auth_mysql.c
++++ mod_auth_mysql-3.0.0/mod_auth_mysql.c
+@@ -206,7 +206,7 @@
+ #define SNPRINTF apr_snprintf
+ #define PSTRDUP apr_pstrdup
+ #define PSTRNDUP apr_pstrndup
+- #define STRCAT ap_pstrcat
++ #define STRCAT apr_pstrcat
+ #define POOL apr_pool_t
+ #include "http_request.h" /* for ap_hook_(check_user_id | auth_checker)*/
+ #include "ap_compat.h"
+@@ -237,7 +237,7 @@
+ #define SNPRINTF ap_snprintf
+ #define PSTRDUP ap_pstrdup
+ #define PSTRNDUP ap_pstrndup
+- #define STRCAT ap_pstrcat
++ #define STRCAT apr_pstrcat
+ #define POOL pool
+ #include <stdlib.h>
+ #include "ap_sha1.h"
+@@ -589,87 +589,87 @@ static void * create_mysql_auth_dir_conf
+ static
+ command_rec mysql_auth_cmds[] = {
+ AP_INIT_TAKE1("AuthMySQLHost", ap_set_string_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlhost),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlhost),
+ OR_AUTHCFG, "mysql server host name"),
+
+ AP_INIT_TAKE1("AuthMySQLPort", ap_set_int_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlport),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlport),
+ OR_AUTHCFG, "mysql server port number"),
+
+ AP_INIT_TAKE1("AuthMySQLSocket", ap_set_string_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlsocket),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlsocket),
+ OR_AUTHCFG, "mysql server socket path"),
+
+ AP_INIT_TAKE1("AuthMySQLUser", ap_set_string_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqluser),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqluser),
+ OR_AUTHCFG, "mysql server user name"),
+
+ AP_INIT_TAKE1("AuthMySQLPassword", ap_set_string_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlpasswd),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlpasswd),
+ OR_AUTHCFG, "mysql server user password"),
+
+ AP_INIT_TAKE1("AuthMySQLDB", ap_set_string_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlDB),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlDB),
+ OR_AUTHCFG, "mysql database name"),
+
+ AP_INIT_TAKE1("AuthMySQLUserTable", ap_set_string_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlpwtable),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlpwtable),
+ OR_AUTHCFG, "mysql user table name"),
+
+ AP_INIT_TAKE1("AuthMySQLGroupTable", ap_set_string_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlgrptable),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlgrptable),
+ OR_AUTHCFG, "mysql group table name"),
+
+ AP_INIT_TAKE1("AuthMySQLNameField", ap_set_string_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlNameField),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlNameField),
+ OR_AUTHCFG, "mysql User ID field name within User table"),
+
+ AP_INIT_TAKE1("AuthMySQLGroupField", ap_set_string_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlGroupField),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlGroupField),
+ OR_AUTHCFG, "mysql Group field name within table"),
+
+ AP_INIT_TAKE1("AuthMySQLGroupUserNameField", ap_set_string_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlGroupUserNameField),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlGroupUserNameField),
+ OR_AUTHCFG, "mysql User ID field name within Group table"),
+
+ AP_INIT_TAKE1("AuthMySQLPasswordField", ap_set_string_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlPasswordField),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlPasswordField),
+ OR_AUTHCFG, "mysql Password field name within table"),
+
+ AP_INIT_TAKE1("AuthMySQLPwEncryption", ap_set_string_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlEncryptionField),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlEncryptionField),
+ OR_AUTHCFG, "mysql password encryption method"),
+
+ AP_INIT_TAKE1("AuthMySQLSaltField", ap_set_string_slot,
+- (void*) APR_XtOffsetOf(mysql_auth_config_rec, mysqlSaltField),
++ (void*) APR_OFFSETOF(mysql_auth_config_rec, mysqlSaltField),
+ OR_AUTHCFG, "mysql salfe field name within table"),
+
+ /* AP_INIT_FLAG("AuthMySQLKeepAlive", ap_set_flag_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlKeepAlive),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlKeepAlive),
+ OR_AUTHCFG, "mysql connection kept open across requests if On"),
+ */
+ AP_INIT_FLAG("AuthMySQLAuthoritative", ap_set_flag_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlAuthoritative),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlAuthoritative),
+ OR_AUTHCFG, "mysql lookup is authoritative if On"),
+
+ AP_INIT_FLAG("AuthMySQLNoPasswd", ap_set_flag_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlNoPasswd),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlNoPasswd),
+ OR_AUTHCFG, "If On, only check if user exists; ignore password"),
+
+ AP_INIT_FLAG("AuthMySQLEnable", ap_set_flag_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlEnable),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlEnable),
+ OR_AUTHCFG, "enable mysql authorization"),
+
+ AP_INIT_TAKE1("AuthMySQLUserCondition", ap_set_string_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlUserCondition),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlUserCondition),
+ OR_AUTHCFG, "condition to add to user where-clause"),
+
+ AP_INIT_TAKE1("AuthMySQLGroupCondition", ap_set_string_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlGroupCondition),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlGroupCondition),
+ OR_AUTHCFG, "condition to add to group where-clause"),
+
+ AP_INIT_TAKE1("AuthMySQLCharacterSet", ap_set_string_slot,
+- (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlCharacterSet),
++ (void *) APR_OFFSETOF(mysql_auth_config_rec, mysqlCharacterSet),
+ OR_AUTHCFG, "mysql character set to be used"),
+
+ { NULL }
--- /dev/null
+Index: mod_auth_mysql-3.0.0/mod_auth_mysql.c
+===================================================================
+--- mod_auth_mysql-3.0.0.orig/mod_auth_mysql.c
++++ mod_auth_mysql-3.0.0/mod_auth_mysql.c
+@@ -288,6 +288,7 @@ static short pw_crypted(POOL * pool, con
+ static short pw_aes(POOL * pool, const char * real_pw, const char * sent_pw, const char * salt);
+ #endif
+ static short pw_sha1(POOL * pool, const char * real_pw, const char * sent_pw, const char * salt);
++static short pw_apr(POOL * pool, const char * real_pw, const char * sent_pw, const char * salt);
+ static short pw_plain(POOL * pool, const char * real_pw, const char * sent_pw, const char * salt);
+
+ static char * format_remote_host(request_rec * r, char ** parm);
+@@ -318,7 +319,8 @@ static encryption encryptions[] = {{"cry
+ #if _AES
+ {"aes", SALT_REQUIRED, pw_aes},
+ #endif
+- {"sha1", NO_SALT, pw_sha1}};
++ {"sha1", NO_SALT, pw_sha1},
++ {"apr", NO_SALT, pw_apr}};
+ typedef struct { /* User formatting patterns */
+ char pattern; /* Pattern to match */
+ char * (*func)(request_rec * r, char ** parm);
+@@ -856,6 +858,12 @@ static short pw_sha1(POOL * pool, const
+ return strcasecmp(bin2hex(pool, scrambled_sent_pw, enc_len), real_pw) == 0;
+ }
+
++/* checks passwords from htpasswd */
++static short pw_apr(POOL * pool, const char * real_pw, const char * sent_pw, const char * salt) {
++ /* apr_password_validate will do the job */
++ return apr_password_validate(sent_pw, real_pw) == APR_SUCCESS;
++}
++
+ /* checks plain text passwords */
+ static short pw_plain(POOL * pool, const char * real_pw, const char * sent_pw, const char * salt) {
+ return strcmp(real_pw, sent_pw) == 0;