Commit 31ff9e9a authored by unknown's avatar unknown
Browse files

A fix for Bug#13944 "libmysqlclient exporting sha1_result function":

rename sha1_* to mysql_sha1_*


include/sha1.h:
  rename sha1_* to mysql_sha1_*
mysys/sha1.c:
  rename sha1_* to mysql_sha1_*
sql/item_strfunc.cc:
  rename sha1_* to mysql_sha1_*
sql/password.c:
  rename sha1_* to mysql_sha1_*
parent 29818203
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -60,8 +60,8 @@ typedef struct SHA1_CONTEXT

C_MODE_START

int sha1_reset( SHA1_CONTEXT* );
int sha1_input( SHA1_CONTEXT*, const uint8 *, unsigned int );
int sha1_result( SHA1_CONTEXT* , uint8 Message_Digest[SHA1_HASH_SIZE] );
int mysql_sha1_reset(SHA1_CONTEXT*);
int mysql_sha1_input(SHA1_CONTEXT*, const uint8 *, unsigned int);
int mysql_sha1_result(SHA1_CONTEXT* , uint8 Message_Digest[SHA1_HASH_SIZE]);

C_MODE_END
+8 −8
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ static void SHA1ProcessMessageBlock(SHA1_CONTEXT*);
  Initialize SHA1Context

  SYNOPSIS
    sha1_reset()
    mysql_sha1_reset()
    context [in/out]		The context to reset.

 DESCRIPTION
@@ -92,7 +92,7 @@ const uint32 sha_const_key[5]=
};


int sha1_reset(SHA1_CONTEXT *context)
int mysql_sha1_reset(SHA1_CONTEXT *context)
{
#ifndef DBUG_OFF
  if (!context)
@@ -119,7 +119,7 @@ int sha1_reset(SHA1_CONTEXT *context)
   Return the 160-bit message digest into the array provided by the caller

  SYNOPSIS
    sha1_result()
    mysql_sha1_result()
    context [in/out]		The context to use to calculate the SHA-1 hash.
    Message_Digest: [out]	Where the digest is returned.

@@ -132,7 +132,7 @@ int sha1_reset(SHA1_CONTEXT *context)
   != SHA_SUCCESS	sha Error Code.
*/

int sha1_result(SHA1_CONTEXT *context,
int mysql_sha1_result(SHA1_CONTEXT *context,
                      uint8 Message_Digest[SHA1_HASH_SIZE])
{
  int i;
@@ -165,7 +165,7 @@ int sha1_result(SHA1_CONTEXT *context,
  Accepts an array of octets as the next portion of the message.

  SYNOPSIS
   sha1_input()
   mysql_sha1_input()
   context [in/out]	The SHA context to update
   message_array	An array of characters representing the next portion
			of the message.
@@ -176,7 +176,7 @@ int sha1_result(SHA1_CONTEXT *context,
   != SHA_SUCCESS	sha Error Code.
*/

int sha1_input(SHA1_CONTEXT *context, const uint8 *message_array,
int mysql_sha1_input(SHA1_CONTEXT *context, const uint8 *message_array,
                     unsigned length)
{
  if (!length)
+5 −3
Original line number Diff line number Diff line
@@ -131,11 +131,13 @@ String *Item_func_sha::val_str(String *str)
    SHA1_CONTEXT context;  /* Context used to generate SHA1 hash */
    /* Temporary buffer to store 160bit digest */
    uint8 digest[SHA1_HASH_SIZE];
    sha1_reset(&context);  /* We do not have to check for error here */
    mysql_sha1_reset(&context);  /* We do not have to check for error here */
    /* No need to check error as the only case would be too long message */
    sha1_input(&context,(const unsigned char *) sptr->ptr(), sptr->length());
    mysql_sha1_input(&context,
                     (const unsigned char *) sptr->ptr(), sptr->length());
    /* Ensure that memory is free and we got result */
    if (!( str->alloc(SHA1_HASH_SIZE*2) || (sha1_result(&context,digest))))
    if (!( str->alloc(SHA1_HASH_SIZE*2) ||
           (mysql_sha1_result(&context,digest))))
    {
      sprintf((char *) str->ptr(),
      "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\
+23 −23
Original line number Diff line number Diff line
@@ -392,15 +392,15 @@ make_scrambled_password(char *to, const char *password)
  SHA1_CONTEXT sha1_context;
  uint8 hash_stage2[SHA1_HASH_SIZE];

  sha1_reset(&sha1_context);
  mysql_sha1_reset(&sha1_context);
  /* stage 1: hash password */
  sha1_input(&sha1_context, (uint8 *) password, strlen(password));
  sha1_result(&sha1_context, (uint8 *) to);
  mysql_sha1_input(&sha1_context, (uint8 *) password, strlen(password));
  mysql_sha1_result(&sha1_context, (uint8 *) to);
  /* stage 2: hash stage1 output */
  sha1_reset(&sha1_context);
  sha1_input(&sha1_context, (uint8 *) to, SHA1_HASH_SIZE);
  mysql_sha1_reset(&sha1_context);
  mysql_sha1_input(&sha1_context, (uint8 *) to, SHA1_HASH_SIZE);
  /* separate buffer is used to pass 'to' in octet2hex */
  sha1_result(&sha1_context, hash_stage2);
  mysql_sha1_result(&sha1_context, hash_stage2);
  /* convert hash_stage2 to hex string */
  *to++= PVERSION41_CHAR;
  octet2hex(to, hash_stage2, SHA1_HASH_SIZE);
@@ -431,20 +431,20 @@ scramble(char *to, const char *message, const char *password)
  uint8 hash_stage1[SHA1_HASH_SIZE];
  uint8 hash_stage2[SHA1_HASH_SIZE];

  sha1_reset(&sha1_context);
  mysql_sha1_reset(&sha1_context);
  /* stage 1: hash password */
  sha1_input(&sha1_context, (uint8 *) password, strlen(password));
  sha1_result(&sha1_context, hash_stage1);
  mysql_sha1_input(&sha1_context, (uint8 *) password, strlen(password));
  mysql_sha1_result(&sha1_context, hash_stage1);
  /* stage 2: hash stage 1; note that hash_stage2 is stored in the database */
  sha1_reset(&sha1_context);
  sha1_input(&sha1_context, hash_stage1, SHA1_HASH_SIZE);
  sha1_result(&sha1_context, hash_stage2);
  mysql_sha1_reset(&sha1_context);
  mysql_sha1_input(&sha1_context, hash_stage1, SHA1_HASH_SIZE);
  mysql_sha1_result(&sha1_context, hash_stage2);
  /* create crypt string as sha1(message, hash_stage2) */;
  sha1_reset(&sha1_context);
  sha1_input(&sha1_context, (const uint8 *) message, SCRAMBLE_LENGTH);
  sha1_input(&sha1_context, hash_stage2, SHA1_HASH_SIZE);
  mysql_sha1_reset(&sha1_context);
  mysql_sha1_input(&sha1_context, (const uint8 *) message, SCRAMBLE_LENGTH);
  mysql_sha1_input(&sha1_context, hash_stage2, SHA1_HASH_SIZE);
  /* xor allows 'from' and 'to' overlap: lets take advantage of it */
  sha1_result(&sha1_context, (uint8 *) to);
  mysql_sha1_result(&sha1_context, (uint8 *) to);
  my_crypt(to, (const uchar *) to, hash_stage1, SCRAMBLE_LENGTH);
}

@@ -477,17 +477,17 @@ check_scramble(const char *scramble, const char *message,
  uint8 buf[SHA1_HASH_SIZE];
  uint8 hash_stage2_reassured[SHA1_HASH_SIZE];

  sha1_reset(&sha1_context);
  mysql_sha1_reset(&sha1_context);
  /* create key to encrypt scramble */
  sha1_input(&sha1_context, (const uint8 *) message, SCRAMBLE_LENGTH);
  sha1_input(&sha1_context, hash_stage2, SHA1_HASH_SIZE);
  sha1_result(&sha1_context, buf);
  mysql_sha1_input(&sha1_context, (const uint8 *) message, SCRAMBLE_LENGTH);
  mysql_sha1_input(&sha1_context, hash_stage2, SHA1_HASH_SIZE);
  mysql_sha1_result(&sha1_context, buf);
  /* encrypt scramble */
    my_crypt((char *) buf, buf, (const uchar *) scramble, SCRAMBLE_LENGTH);
  /* now buf supposedly contains hash_stage1: so we can get hash_stage2 */
  sha1_reset(&sha1_context);
  sha1_input(&sha1_context, buf, SHA1_HASH_SIZE);
  sha1_result(&sha1_context, hash_stage2_reassured);
  mysql_sha1_reset(&sha1_context);
  mysql_sha1_input(&sha1_context, buf, SHA1_HASH_SIZE);
  mysql_sha1_result(&sha1_context, hash_stage2_reassured);
  return memcmp(hash_stage2, hash_stage2_reassured, SHA1_HASH_SIZE);
}