r1573, r1574, r1575 merge:

ngx_md5.h and ngx_sha1.h
This commit is contained in:
Igor Sysoev 2007-12-12 17:09:50 +00:00
parent c86eef6299
commit ee84366663
4 changed files with 85 additions and 18 deletions

View File

@ -21,6 +21,8 @@ CORE_DEPS="src/core/nginx.h \
src/core/ngx_file.h \
src/core/ngx_crc.h \
src/core/ngx_crc32.h \
src/core/ngx_md5.h \
src/core/ngx_sha1.h \
src/core/ngx_rbtree.h \
src/core/ngx_radix_tree.h \
src/core/ngx_slab.h \

40
src/core/ngx_md5.h Normal file
View File

@ -0,0 +1,40 @@
/*
* Copyright (C) Igor Sysoev
*/
#ifndef _NGX_MD5_H_INCLUDED_
#define _NGX_MD5_H_INCLUDED_
#include <ngx_config.h>
#include <ngx_core.h>
#if (NGX_HAVE_OPENSSL_MD5_H)
#include <openssl/md5.h>
#else
#include <md5.h>
#endif
typedef MD5_CTX ngx_md5_t;
#if (NGX_OPENSSL_MD5)
#define ngx_md5_init MD5_Init
#define ngx_md5_update MD5_Update
#define ngx_md5_final MD5_Final
#else
#define ngx_md5_init MD5Init
#define ngx_md5_update MD5Update
#define ngx_md5_final MD5Final
#endif
#endif /* _NGX_MD5_H_INCLUDED_ */

30
src/core/ngx_sha1.h Normal file
View File

@ -0,0 +1,30 @@
/*
* Copyright (C) Igor Sysoev
*/
#ifndef _NGX_SHA1_H_INCLUDED_
#define _NGX_SHA1_H_INCLUDED_
#include <ngx_config.h>
#include <ngx_core.h>
#if (NGX_HAVE_OPENSSL_SHA1_H)
#include <openssl/sha.h>
#else
#include <sha.h>
#endif
typedef SHA_CTX ngx_sha1_t;
#define ngx_sha1_init SHA1_Init
#define ngx_sha1_update SHA1_Update
#define ngx_sha1_final SHA1_Final
#endif /* _NGX_SHA1_H_INCLUDED_ */

View File

@ -12,12 +12,7 @@
#include <ngx_event.h>
#include <ngx_event_connect.h>
#include <ngx_mysql.h>
#if (NGX_HAVE_OPENSSL_SHA1_H)
#include <openssl/sha.h>
#else
#include <sha.h>
#endif
#include <ngx_sha1.h>
#define NGX_MYSQL_LONG_PASSWORD 0x0001
@ -142,7 +137,7 @@ ngx_mysql_read_server_greeting(ngx_event_t *rev)
ngx_mysql_greeting1_pkt_t *gr1;
ngx_mysql_greeting2_pkt_t *gr2;
ngx_mysql_auth_pkt_t *auth;
SHA_CTX sha;
ngx_sha1_t sha;
u_char hash1[20], hash2[20];
c = rev->data;
@ -241,19 +236,19 @@ ngx_mysql_read_server_greeting(ngx_event_t *rev)
*p++ = (u_char) 20;
SHA1_Init(&sha);
SHA1_Update(&sha, m->passwd->data, m->passwd->len);
SHA1_Final(hash1, &sha);
ngx_sha1_init(&sha);
ngx_sha1_update(&sha, m->passwd->data, m->passwd->len);
ngx_sha1_final(hash1, &sha);
SHA1_Init(&sha);
SHA1_Update(&sha, hash1, 20);
SHA1_Final(hash2, &sha);
ngx_sha1_init(&sha);
ngx_sha1_update(&sha, hash1, 20);
ngx_sha1_final(hash2, &sha);
SHA1_Init(&sha);
SHA1_Update(&sha, gr2->salt1, 8);
SHA1_Update(&sha, gr2->salt2, 12);
SHA1_Update(&sha, hash2, 20);
SHA1_Final(hash2, &sha);
ngx_sha1_init(&sha);
ngx_sha1_update(&sha, gr2->salt1, 8);
ngx_sha1_update(&sha, gr2->salt2, 12);
ngx_sha1_update(&sha, hash2, 20);
ngx_sha1_final(hash2, &sha);
for (i = 0; i < 20; i++) {
*p++ = (u_char) (hash1[i] ^ hash2[i]);