To get AES encryption, when you compile mod_auth_mysql you need to add the parameter
-DAES
to your apxs compile.
This was a change we made because not all versions of MySQL support AES encryption - and if your version doesn't support it, you get compile errors. There was no good way we could determine if any specific version of MySQL supported AES encryption or not.
So, please recompile with this flag and see if it works better.
Sorry,
Jerry
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
When compiled with -DAES, I get the following error when run apache:
root@srv:~/mod_auth_mysql-3.0.0# apachectl configtest
Syntax error on line 207 of /web/httpd/conf/httpd.conf:
Cannot load /web/httpd/libexec/mod_auth_mysql.so into
server: /web/httpd/libexec/mod_auth_mysql.so: undefined
symbol: my_aes_encrypt
Why "undefined symbol: my_aes_encrypt"?
Can you help me, please?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Are you sure you're loading the current version of the MySQL libraries when Apache starts up? This looks exactly like the problems we see when some other product (probably PHP) is loading a back-level version of the libraries.
Jerry
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Not other than what else has been discussed in the forums here.
You'll have to look at the products you're using with Apache and determine which one is causing the problem. Older versions of PHP are one - the most recent ones do not ship with MySQL client libraries for this very reason.
For instance, you can try a file (in a protected directory) with just the lines:
<?php
phpinfo();
?>
named (something).php. Display this page and see what it says for the MySQL client library version.
Otherwise, remove modules one at a time from your Apache configuration until it loads. Then start putting them back. Whenever it doesn't load, you have a conflict.
Once you figure out which product(s) cause the conflict, recompile that product(s) with the new MySQL libraries.
Jerry
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
mod_auth_mysql works great using just plain text, but when I try to use aes encryption the error log shows "mysql invalid encryption method aes"
Here's what I got in my htaccess:
AuthMySQLPwEncryption aes
AuthMySQLSaltField <test>
Hmm, my original message got cut in half there. Anyways,
Also,
aes_encrypt / decrypt works fine itself in mysql. No problems there.
Also I tried out using md5 with mod_auth_mysql and that works fine, just aes doesn't for some reason.
Im getting the same error, MySql AES_ENCRYPT function works good:
mysql> select AES_ENCRYPT("teste", "kkk");
+-----------------------------+
| AES_ENCRYPT("teste", "kkk") |
+-----------------------------+
| e{"f+ݕm
e |
+-----------------------------+
1 row in set (0.04 sec)
mysql>
Suspect that there is a BUG!
Hi, donertier and M3rlyn,
No, it's not a bug. It's an errata item.
To get AES encryption, when you compile mod_auth_mysql you need to add the parameter
-DAES
to your apxs compile.
This was a change we made because not all versions of MySQL support AES encryption - and if your version doesn't support it, you get compile errors. There was no good way we could determine if any specific version of MySQL supported AES encryption or not.
So, please recompile with this flag and see if it works better.
Sorry,
Jerry
When compiled with -DAES, I get the following error when run apache:
root@srv:~/mod_auth_mysql-3.0.0# apachectl configtest
Syntax error on line 207 of /web/httpd/conf/httpd.conf:
Cannot load /web/httpd/libexec/mod_auth_mysql.so into
server: /web/httpd/libexec/mod_auth_mysql.so: undefined
symbol: my_aes_encrypt
Why "undefined symbol: my_aes_encrypt"?
Can you help me, please?
Fabio,
Are you sure you're loading the current version of the MySQL libraries when Apache starts up? This looks exactly like the problems we see when some other product (probably PHP) is loading a back-level version of the libraries.
Jerry
Hi
Thanks!
Do youi have a Tip on what to do?
M3rlyn,
Not other than what else has been discussed in the forums here.
You'll have to look at the products you're using with Apache and determine which one is causing the problem. Older versions of PHP are one - the most recent ones do not ship with MySQL client libraries for this very reason.
For instance, you can try a file (in a protected directory) with just the lines:
<?php
phpinfo();
?>
named (something).php. Display this page and see what it says for the MySQL client library version.
Otherwise, remove modules one at a time from your Apache configuration until it loads. Then start putting them back. Whenever it doesn't load, you have a conflict.
Once you figure out which product(s) cause the conflict, recompile that product(s) with the new MySQL libraries.
Jerry