parent
c86eef6299
commit
ee84366663
|
@ -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 \
|
||||
|
|
|
@ -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_ */
|
|
@ -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_ */
|
|
@ -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]);
|
||||
|
|
Loading…
Reference in New Issue