diff --git a/SMBLibrary/Authentication/NTLM/Helpers/NTLMCryptography.cs b/SMBLibrary/Authentication/NTLM/Helpers/NTLMCryptography.cs
index 2516d28..ec7c8c8 100644
--- a/SMBLibrary/Authentication/NTLM/Helpers/NTLMCryptography.cs
+++ b/SMBLibrary/Authentication/NTLM/Helpers/NTLMCryptography.cs
@@ -60,22 +60,6 @@ namespace SMBLibrary.Authentication.NTLM
return _NTProof;
}
- ///
- /// Caller must verify that the authenticate message has MIC before calling this method
- ///
- public static bool ValidateAuthenticateMessageMIC(byte[] exportedSessionKey, byte[] negotiateMessageBytes, byte[] challengeMessageBytes, byte[] authenticateMessageBytes)
- {
- // https://msdn.microsoft.com/en-us/library/cc236695.aspx
- int micFieldOffset = AuthenticateMessage.GetMicFieldOffset(authenticateMessageBytes);
- byte[] expectedMic = ByteReader.ReadBytes(authenticateMessageBytes, micFieldOffset, AuthenticateMessage.MicFieldLenght);
-
- ByteWriter.WriteBytes(authenticateMessageBytes, micFieldOffset, new byte[AuthenticateMessage.MicFieldLenght]);
- byte[] temp = ByteUtils.Concatenate(ByteUtils.Concatenate(negotiateMessageBytes, challengeMessageBytes), authenticateMessageBytes);
- byte[] mic = new HMACMD5(exportedSessionKey).ComputeHash(temp);
-
- return ByteUtils.AreByteArraysEqual(mic, expectedMic);
- }
-
public static byte[] DesEncrypt(byte[] key, byte[] plainText)
{
return DesEncrypt(key, plainText, 0, plainText.Length);
@@ -273,5 +257,21 @@ namespace SMBLibrary.Authentication.NTLM
return keyExchangeKey;
}
}
+
+ ///
+ /// Caller must verify that the authenticate message has MIC before calling this method
+ ///
+ public static bool ValidateAuthenticateMessageMIC(byte[] exportedSessionKey, byte[] negotiateMessageBytes, byte[] challengeMessageBytes, byte[] authenticateMessageBytes)
+ {
+ // https://msdn.microsoft.com/en-us/library/cc236695.aspx
+ int micFieldOffset = AuthenticateMessage.GetMicFieldOffset(authenticateMessageBytes);
+ byte[] expectedMic = ByteReader.ReadBytes(authenticateMessageBytes, micFieldOffset, AuthenticateMessage.MicFieldLenght);
+
+ ByteWriter.WriteBytes(authenticateMessageBytes, micFieldOffset, new byte[AuthenticateMessage.MicFieldLenght]);
+ byte[] temp = ByteUtils.Concatenate(ByteUtils.Concatenate(negotiateMessageBytes, challengeMessageBytes), authenticateMessageBytes);
+ byte[] mic = new HMACMD5(exportedSessionKey).ComputeHash(temp);
+
+ return ByteUtils.AreByteArraysEqual(mic, expectedMic);
+ }
}
}