Reorder MD5/crypt so MD5 comes first in the code.
authorBruce Momjian <bruce@momjian.us>
Fri, 17 Aug 2001 15:40:07 +0000 (15:40 +0000)
committerBruce Momjian <bruce@momjian.us>
Fri, 17 Aug 2001 15:40:07 +0000 (15:40 +0000)
src/backend/libpq/auth.c
src/backend/libpq/crypt.c
src/interfaces/libpq/fe-auth.c

index 048f67c3013626ff0ed0a70263f3171e3e380e1e..1f60d13731e88b00ce2d4fe473260725700e91d7 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.60 2001/08/17 02:59:19 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.61 2001/08/17 15:40:07 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -420,8 +420,8 @@ auth_failed(Port *port)
                        authmethod = "IDENT";
                        break;
                case uaPassword:
-               case uaCrypt:
                case uaMD5:
+               case uaCrypt:
                        authmethod = "Password";
                        break;
        }
@@ -501,13 +501,13 @@ ClientAuthentication(Port *port)
                        status = recv_and_check_password_packet(port);
                        break;
 
-               case uaCrypt:
-                       sendAuthRequest(port, AUTH_REQ_CRYPT);
+               case uaMD5:
+                       sendAuthRequest(port, AUTH_REQ_MD5);
                        status = recv_and_check_password_packet(port);
                        break;
 
-               case uaMD5:
-                       sendAuthRequest(port, AUTH_REQ_MD5);
+               case uaCrypt:
+                       sendAuthRequest(port, AUTH_REQ_CRYPT);
                        status = recv_and_check_password_packet(port);
                        break;
 
@@ -643,8 +643,8 @@ map_old_to_new(Port *port, UserAuth old, int status)
 {
        switch (port->auth_method)
        {
-               case uaCrypt:
                case uaMD5:
+               case uaCrypt:
                case uaReject:
                        status = STATUS_ERROR;
                        break;
index 5a54bde4b6b034b527ff85a7216b98f7794845a6..8f2a1f924392b18edf412627f077a0cfd6bb1994 100644 (file)
@@ -9,7 +9,7 @@
  * Dec 17, 1997 - Todd A. Brandys
  *     Orignal Version Completed.
  *
- * $Id: crypt.c,v 1.36 2001/08/17 03:09:31 momjian Exp $
+ * $Id: crypt.c,v 1.37 2001/08/17 15:40:07 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -294,13 +294,6 @@ md5_crypt_verify(const Port *port, const char *user, const char *pgpass)
         */
        switch (port->auth_method)
        {
-               case uaCrypt:
-               {
-                       char salt[3];
-                       StrNCpy(salt, port->cryptSalt,3);
-                       crypt_pwd = crypt(passwd, salt);
-                       break;
-               }
                case uaMD5:
                        crypt_pwd = palloc(MD5_PASSWD_LEN+1);
                        if (isMD5(passwd))
@@ -334,6 +327,13 @@ md5_crypt_verify(const Port *port, const char *user, const char *pgpass)
                                pfree(crypt_pwd2);
                        }
                        break;
+               case uaCrypt:
+               {
+                       char salt[3];
+                       StrNCpy(salt, port->cryptSalt,3);
+                       crypt_pwd = crypt(passwd, salt);
+                       break;
+               }
                default:
                        crypt_pwd = passwd;
                        break;
index 6c8f8492eafa04e9fbeccc4a539f57aa7af714e7..e26a9c271bad9054861cdc9c2d4ac0dc373f3fb5 100644 (file)
@@ -10,7 +10,7 @@
  * exceed INITIAL_EXPBUFFER_SIZE (currently 256 bytes).
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-auth.c,v 1.54 2001/08/17 15:11:15 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-auth.c,v 1.55 2001/08/17 15:40:07 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -438,6 +438,33 @@ pg_password_sendauth(PGconn *conn, const char *password, AuthRequest areq)
 
        switch (areq)
        {
+               case AUTH_REQ_MD5:
+               {
+                       char *crypt_pwd2;
+
+                       if (!(crypt_pwd = malloc(MD5_PASSWD_LEN+1)) ||
+                               !(crypt_pwd2 = malloc(MD5_PASSWD_LEN+1)))
+                       {
+                               perror("malloc");
+                               return STATUS_ERROR;
+                       }
+                       if (!EncryptMD5(password, conn->pguser,
+                                                       strlen(conn->pguser), crypt_pwd2))
+                       {
+                               free(crypt_pwd);
+                               free(crypt_pwd2);
+                               return STATUS_ERROR;
+                       }
+                       if (!EncryptMD5(crypt_pwd2 + strlen("md5"), conn->md5Salt,
+                                                       sizeof(conn->md5Salt), crypt_pwd))
+                       {
+                               free(crypt_pwd);
+                               free(crypt_pwd2);
+                               return STATUS_ERROR;
+                       }
+                       free(crypt_pwd2);
+                       break;
+               }
                case AUTH_REQ_CRYPT:
                {
                        char salt[3];
@@ -446,33 +473,6 @@ pg_password_sendauth(PGconn *conn, const char *password, AuthRequest areq)
                        crypt_pwd = crypt(password, salt);
                        break;
                }
-               case AUTH_REQ_MD5:
-                       {
-                               char *crypt_pwd2;
-
-                               if (!(crypt_pwd = malloc(MD5_PASSWD_LEN+1)) ||
-                                       !(crypt_pwd2 = malloc(MD5_PASSWD_LEN+1)))
-                               {
-                                       perror("malloc");
-                                       return STATUS_ERROR;
-                               }
-                               if (!EncryptMD5(password, conn->pguser,
-                                                               strlen(conn->pguser), crypt_pwd2))
-                               {
-                                       free(crypt_pwd);
-                                       free(crypt_pwd2);
-                                       return STATUS_ERROR;
-                               }
-                               if (!EncryptMD5(crypt_pwd2 + strlen("md5"), conn->md5Salt,
-                                                               sizeof(conn->md5Salt), crypt_pwd))
-                               {
-                                       free(crypt_pwd);
-                                       free(crypt_pwd2);
-                                       return STATUS_ERROR;
-                               }
-                               free(crypt_pwd2);
-                               break;
-                       }
                default:
                        /* discard const so we can assign it */
                        crypt_pwd = (char *)password;
@@ -535,9 +535,9 @@ fe_sendauth(AuthRequest areq, PGconn *conn, const char *hostname,
                        return STATUS_ERROR;
 #endif
 
-               case AUTH_REQ_PASSWORD:
-               case AUTH_REQ_CRYPT:
                case AUTH_REQ_MD5:
+               case AUTH_REQ_CRYPT:
+               case AUTH_REQ_PASSWORD:
                        if (password == NULL || *password == '\0')
                        {
                                (void) sprintf(PQerrormsg,