Merge pull request #2803 from BrzVlad/feature-conc-pinned-scan
[mono.git] / mcs / class / Mono.Security / Mono.Security.Protocol.Ntlm / Type3Message.cs
index 59e948fdfd9b5e0d77f14eb86a61dca34d345709..ddb44b2dfde08ff754f5125a6375c94b2fe2d6fd 100644 (file)
@@ -84,7 +84,7 @@ namespace Mono.Security.Protocol.Ntlm {
                public Type3Message (Type2Message type2) : base (3)
                {
                        _type2 = type2;
-                       _level = DefaultAuthLevel;
+                       _level = NtlmSettings.DefaultAuthLevel;
                        _challenge = (byte[]) type2.Nonce.Clone ();
 
                        _domain = type2.TargetName;
@@ -112,12 +112,10 @@ namespace Mono.Security.Protocol.Ntlm {
                }
 
                // Default auth level
-
-               static NtlmAuthLevel _default = NtlmAuthLevel.LM_and_NTLM_and_try_NTLMv2_Session;
-
+               [Obsolete ("Use NtlmSettings.DefaultAuthLevel")]
                public static NtlmAuthLevel DefaultAuthLevel {
-                       get { return _default; }
-                       set { _default = value; }
+                       get { return NtlmSettings.DefaultAuthLevel; }
+                       set { NtlmSettings.DefaultAuthLevel = value; }
                }
 
                public NtlmAuthLevel Level {
@@ -152,9 +150,6 @@ namespace Mono.Security.Protocol.Ntlm {
                public string Domain {
                        get { return _domain; }
                        set {
-                               if (_type2 != null)
-                                       throw new InvalidOperationException (
-                                               "Domain is set automatically from Type2Message.TargetName");
                                if (value == null)
                                        value = "";
                                if (value == "")
@@ -205,11 +200,6 @@ namespace Mono.Security.Protocol.Ntlm {
                {
                        base.Decode (message);
 
-                       if (BitConverterLE.ToUInt16 (message, 56) != message.Length) {
-                               string msg = Locale.GetText ("Invalid Type3 message length.");
-                               throw new ArgumentException (msg, "message");
-                       }
-
                        _password = null;
 
                        if (message.Length >= 64)
@@ -274,13 +264,15 @@ namespace Mono.Security.Protocol.Ntlm {
                                        throw new InvalidOperationException (
                                                "Refusing to use legacy-mode LM/NTLM authentication " +
                                                        "unless explicitly enabled using DefaultAuthLevel.");
-                               
+
+                               #pragma warning disable 618
                                using (var legacy = new ChallengeResponse (_password, _challenge)) {
                                        lm = legacy.LM;
                                        ntlm = legacy.NT;
                                }
+                               #pragma warning restore 618
                        } else {
-                               ChallengeResponse2.Compute (_type2, _level, _username, _password, out lm, out ntlm);
+                               ChallengeResponse2.Compute (_type2, _level, _username, _password, _domain, out lm, out ntlm);
                        }
 
                        var lmresp_len = lm != null ? lm.Length : 0;