public NTLMv2ClientChallenge(byte[] buffer, int offset) { CurrentVersion = ByteReader.ReadByte(buffer, offset + 0); MaximumSupportedVersion = ByteReader.ReadByte(buffer, offset + 1); Reserved1 = LittleEndianConverter.ToUInt16(buffer, offset + 2); Reserved2 = LittleEndianConverter.ToUInt32(buffer, offset + 4); TimeStamp = FileTimeHelper.ReadFileTime(buffer, offset + 8); ClientChallenge = ByteReader.ReadBytes(buffer, offset + 16, 8); Reserved3 = LittleEndianConverter.ToUInt32(buffer, offset + 24); AVPairs = AVPairUtils.ReadAVPairSequence(buffer, offset + 28); }
public ChallengeMessage(byte[] buffer) { Signature = ByteReader.ReadAnsiString(buffer, 0, 8); MessageType = (MessageTypeName)LittleEndianConverter.ToUInt32(buffer, 8); TargetName = AuthenticationMessageUtils.ReadUnicodeStringBufferPointer(buffer, 12); NegotiateFlags = (NegotiateFlags)LittleEndianConverter.ToUInt32(buffer, 20); ServerChallenge = ByteReader.ReadBytes(buffer, 24, 8); // Reserved byte[] targetInfoBytes = AuthenticationMessageUtils.ReadBufferPointer(buffer, 40); if (targetInfoBytes.Length > 0) { TargetInfo = AVPairUtils.ReadAVPairSequence(targetInfoBytes, 0); } if ((NegotiateFlags & NegotiateFlags.Version) > 0) { Version = new NtlmVersion(buffer, 48); } }