--- /dev/null
+
+/*
+ * 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_ */
--- /dev/null
+
+/*
+ * 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_ */
#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
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;
*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]);