Skip to content

Commit 6222c6a

Browse files
committed
Use rust-openssl's MD5
1 parent 5e7bfe5 commit 6222c6a

File tree

5 files changed

+9
-848
lines changed

5 files changed

+9
-848
lines changed

lib.rs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,10 @@ extern mod extra;
6868
extern mod openssl = "github.com/sfackler/rust-openssl";
6969

7070
use extra::container::Deque;
71+
use extra::hex::ToHex;
7172
use extra::ringbuf::RingBuf;
7273
use extra::url::{UserInfo, Url};
74+
use openssl::crypto::hash::{MD5, Hasher};
7375
use openssl::ssl::{SslStream, SslContext};
7476
use std::cell::RefCell;
7577
use std::io::io_error;
@@ -130,14 +132,11 @@ use self::message::{FrontendMessage,
130132
Terminate};
131133
use self::message::{RowDescriptionEntry, WriteMessage, ReadMessage};
132134
use self::types::{Oid, PostgresType, ToSql, FromSql, PgUnknownType};
133-
use self::util::digest::Digest;
134-
use self::util::md5::Md5;
135135

136136
pub mod error;
137137
pub mod pool;
138138
mod message;
139139
pub mod types;
140-
mod util;
141140

142141
static DEFAULT_PORT: Port = 5432;
143142

@@ -454,13 +453,13 @@ impl InnerPostgresConnection {
454453
None => return Some(MissingPassword)
455454
};
456455
let input = pass + user;
457-
let mut md5 = Md5::new();
458-
md5.input_str(input);
459-
let output = md5.result_str();
460-
md5.reset();
461-
md5.input_str(output);
462-
md5.input(salt);
463-
let output = "md5" + md5.result_str();
456+
let hasher = Hasher::new(MD5);
457+
hasher.update(input.as_bytes());
458+
let output = hasher.final().to_hex();
459+
let hasher = Hasher::new(MD5);
460+
hasher.update(output.as_bytes());
461+
hasher.update(salt);
462+
let output = "md5" + hasher.final().to_hex();
464463
self.write_messages([PasswordMessage {
465464
password: output.as_slice()
466465
}]);

0 commit comments

Comments
 (0)