Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
9105d06d
Commit
9105d06d
authored
Jan 11, 2006
by
konstantin@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
A fix for Bug#13944 "libmysqlclient exporting sha1_result function":
rename sha1_* to mysql_sha1_*
parent
16004acc
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
39 additions
and
37 deletions
+39
-37
include/sha1.h
include/sha1.h
+3
-3
mysys/sha1.c
mysys/sha1.c
+8
-8
sql/item_strfunc.cc
sql/item_strfunc.cc
+5
-3
sql/password.c
sql/password.c
+23
-23
No files found.
include/sha1.h
View file @
9105d06d
...
...
@@ -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
mysys/sha1.c
View file @
9105d06d
...
...
@@ -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,8 +132,8 @@ int sha1_reset(SHA1_CONTEXT *context)
!= SHA_SUCCESS sha Error Code.
*/
int
sha1_result
(
SHA1_CONTEXT
*
context
,
uint8
Message_Digest
[
SHA1_HASH_SIZE
])
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,8 +176,8 @@ int sha1_result(SHA1_CONTEXT *context,
!= SHA_SUCCESS sha Error Code.
*/
int
sha1_input
(
SHA1_CONTEXT
*
context
,
const
uint8
*
message_array
,
unsigned
length
)
int
mysql_
sha1_input
(
SHA1_CONTEXT
*
context
,
const
uint8
*
message_array
,
unsigned
length
)
{
if
(
!
length
)
return
SHA_SUCCESS
;
...
...
sql/item_strfunc.cc
View file @
9105d06d
...
...
@@ -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\
...
...
sql/password.c
View file @
9105d06d
...
...
@@ -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
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment