diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-05-22 02:08:01 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-05-22 02:08:01 -0400 |
commit | 5a35ab9eee8d070cbc6a0f073e131cd6e567ed4d (patch) | |
tree | d30527d024f2be72797137175d89cad1ed55cd65 /src | |
parent | c272cfc4241f2c19fd948202caf0328b172958c4 (diff) | |
download | matasano-master.tar.gz matasano-master.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/crack.rs | 30 | ||||
-rw-r--r-- | src/lib.rs | 1 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/crack.rs b/src/crack.rs index 731cfbd..535b12a 100644 --- a/src/crack.rs +++ b/src/crack.rs @@ -1016,6 +1016,36 @@ impl<'a> SRPClient for CorrectSRPClient<'a> { } } +#[derive(Debug)] +pub struct ZeroKeySRPClient<'a> { + server: &'a mut crate::dh::SRPServer, +} + +impl<'a> ZeroKeySRPClient<'a> { + pub fn new(server: &'a mut crate::dh::SRPServer) -> ZeroKeySRPClient<'a> { + ZeroKeySRPClient { server } + } +} + +impl<'a> SRPClient for ZeroKeySRPClient<'a> { + fn server(&mut self) -> &mut crate::dh::SRPServer { + self.server + } + + fn key_exchange_impl( + &mut self, + user: &str, + _: &str, + ) -> (Vec<u8>, Vec<u8>, num_bigint::BigUint) { + let a_pub = num_bigint::BigUint::from(0 as u8); + let (session, salt, _b_pub) = + self.server.exchange_pubkeys(user, &a_pub); + + let s = num_bigint::BigUint::from(0 as u8); + (session, salt, s) + } +} + fn crack_single_byte_xor_with_confidence(input: &[u8]) -> (u8, f64) { let mut min_diff = 100.0; let mut best_key = 0; @@ -42,6 +42,7 @@ pub use crack::DiffieHellmanMessageExchanger; pub use crack::NullDiffieHellmanMessageExchanger; pub use crack::ParameterInjectionDiffieHellmanMessageExchanger; pub use crack::SRPClient; +pub use crack::ZeroKeySRPClient; pub use dh::DHKeyPair; pub use dh::SRPServer; pub use dh::SRPUser; |