diff options
author | unknown <kostja@oak.local> | 2003-07-08 02:36:14 +0400 |
---|---|---|
committer | unknown <kostja@oak.local> | 2003-07-08 02:36:14 +0400 |
commit | 78c3d9684ce2e83efc00878c3e901487bd5267bf (patch) | |
tree | 5a836d0a6e734d06562d84c77adfb6a8a3923e7d /sql/password.c | |
parent | ccbcf1c9da89eaee2dfb4219da1d86b6f590ac20 (diff) | |
download | mariadb-git-78c3d9684ce2e83efc00878c3e901487bd5267bf.tar.gz |
Preliminary support for options --secure-auth,
--old-passwords
Support for option --old-protocol was removed.
Some test performed.
Tests for SSL and replication are pending.
More strict following to specification for --old-passwords
is in the TODO.
include/mysql_com.h:
support for 3.20 passwords removed from
scramble_323
include/mysqld_error.h:
added error code for --secure-auth mode
libmysql/libmysql.c:
removed support for 3.20 password and protocol
version 9
mysql-test/r/connect.result:
added check for new syntax of
set password
mysql-test/r/func_crypt.result:
tests for two-argument of password() were removed.
Instead added tests for cooperation of password() and
old_passwords session/global variable, passwords() and spaces
in argument string
mysql-test/t/connect.test:
added check for new syntax of
set password
mysql-test/t/func_crypt.test:
tests for two-argument of password() were removed.
Instead added tests for cooperation of password() and
old_passwords session/global variable, passwords() and spaces
in argument string
sql-common/client.c:
removed support for 3.20 servers and
protocol version 9
sql/item_strfunc.h:
fixed comment
sql/mysql_priv.h:
added declarartion for option opt_secure_auth
sql/mysqld.cc:
added option opt_secure_auth
option old-password placed according to
sort order
sql/password.c:
removed support for 3.20 clients and
old scrambles
sql/set_var.cc:
added system variable 'secure_auth'
added system/thread variable 'old_passwords'
sql/set_var.h:
sys_old_passwords needs to be exported
because sys_old_passwords.after_update is used
in sql_acl.cc
sql/sql_acl.cc:
support for 3.20 passwords removed
now acl_init honors options works properly with
options/variables --secure-auth and --old-passwords
sql/sql_acl.h:
support for 3.20 clients removed
sql/sql_class.h:
added system/thread variable old_passwords
sql/sql_parse.cc:
support for 3.20 clients removed
now check_user takes into account option
secure_auth
sql/sql_yacc.yy:
global variable use_old_passwords
replaced with thread-specific variable
old_passwords
sql/share/czech/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/danish/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/dutch/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/english/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/estonian/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/french/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/german/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/greek/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/hungarian/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/italian/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/japanese/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/korean/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/norwegian-ny/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/norwegian/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/polish/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/portuguese/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/romanian/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/russian/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/serbian/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/slovak/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/spanish/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/swedish/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
sql/share/ukrainian/errmsg.txt:
error message for --secure-auth added
(as suggested by Paul)
Diffstat (limited to 'sql/password.c')
-rw-r--r-- | sql/password.c | 55 |
1 files changed, 11 insertions, 44 deletions
diff --git a/sql/password.c b/sql/password.c index bfdb453af01..2e9139c12aa 100644 --- a/sql/password.c +++ b/sql/password.c @@ -89,24 +89,6 @@ void randominit(struct rand_struct *rand_st, ulong seed1, ulong seed2) /* - Old (MySQL 3.20) random generation structure initialization - XXX: is to be deleted very soon! - SYNOPSIS - old_randominit() - rand_st OUT Structure to initialize - seed1 IN First initialization parameter -*/ - -static void old_randominit(struct rand_struct *rand_st, ulong seed1) -{ /* For mysql 3.20.# */ - rand_st->max_value= 0x01FFFFFFL; - rand_st->max_value_dbl=(double) rand_st->max_value; - seed1%=rand_st->max_value; - rand_st->seed1=seed1 ; rand_st->seed2=seed1/2; -} - - -/* Generate random number. SYNOPSIS my_rnd() @@ -178,13 +160,11 @@ void make_scrambled_password_323(char *to, const char *password) message IN Message to scramble. Message must be exactly SRAMBLE_LENGTH_323 long and NULL terminated. password IN Password to use while scrambling - old_ver IN Force old version random number generator RETURN End of scrambled string */ -char *scramble_323(char *to, const char *message, const char *password, - my_bool old_ver) +char *scramble_323(char *to, const char *message, const char *password) { struct rand_struct rand_st; ulong hash_pass[2], hash_message[2]; @@ -194,21 +174,15 @@ char *scramble_323(char *to, const char *message, const char *password, char *to_start=to; hash_password(hash_pass,password); hash_password(hash_message, message); - if (old_ver) - old_randominit(&rand_st,hash_pass[0] ^ hash_message[0]); - else - randominit(&rand_st,hash_pass[0] ^ hash_message[0], - hash_pass[1] ^ hash_message[1]); + randominit(&rand_st,hash_pass[0] ^ hash_message[0], + hash_pass[1] ^ hash_message[1]); while (*message++) *to++= (char) (floor(my_rnd(&rand_st)*31)+64); - if (!old_ver) - { /* Make it harder to break */ - char extra=(char) (floor(my_rnd(&rand_st)*31)); - while (to_start != to) - *(to_start++)^=extra; - } + char extra=(char) (floor(my_rnd(&rand_st)*31)); + while (to_start != to) + *(to_start++)^=extra; } - *to=0; + *to= 0; return to; } @@ -223,7 +197,6 @@ char *scramble_323(char *to, const char *message, const char *password, be exactly SCRAMBLED_LENGTH_323 bytes long and NULL-terminated. hash_pass IN password which should be used for scrambling - old_ver IN force old (3.20) version random number generator RETURN VALUE 0 - password correct !0 - password invalid @@ -231,7 +204,7 @@ char *scramble_323(char *to, const char *message, const char *password, my_bool check_scramble_323(const char *scrambled, const char *message, - ulong *hash_pass, my_bool old_ver) + ulong *hash_pass) { struct rand_struct rand_st; ulong hash_message[2]; @@ -243,18 +216,12 @@ check_scramble_323(const char *scrambled, const char *message, return 1; /* Wrong password */ hash_password(hash_message,message); - if (old_ver) - old_randominit(&rand_st,hash_pass[0] ^ hash_message[0]); - else - randominit(&rand_st,hash_pass[0] ^ hash_message[0], - hash_pass[1] ^ hash_message[1]); + randominit(&rand_st,hash_pass[0] ^ hash_message[0], + hash_pass[1] ^ hash_message[1]); to=buff; for (pos=scrambled ; *pos ; pos++) *to++=(char) (floor(my_rnd(&rand_st)*31)+64); - if (old_ver) - extra=0; - else - extra=(char) (floor(my_rnd(&rand_st)*31)); + extra=(char) (floor(my_rnd(&rand_st)*31)); to=buff; while (*scrambled) { |