SharpCifs.Smb.NtlmContext.InitSecContext C# (CSharp) Метод

InitSecContext() публичный Метод

public InitSecContext ( byte token, int offset, int len ) : byte[]
token byte
offset int
len int
Результат byte[]
		public virtual byte[] InitSecContext(byte[] token, int offset, int len)
		{
			switch (State)
			{
				case 1:
				{
					Type1Message msg1 = new Type1Message(NtlmsspFlags, Auth.GetDomain(), Workstation);
					token = msg1.ToByteArray();
					if (Log.Level >= 4)
					{
						Log.WriteLine(msg1);
						if (Log.Level >= 6)
						{
							Hexdump.ToHexdump(Log, token, 0, token.Length);
						}
					}
					State++;
					break;
				}

				case 2:
				{
					try
					{
						Type2Message msg2 = new Type2Message(token);
						if (Log.Level >= 4)
						{
							Log.WriteLine(msg2);
							if (Log.Level >= 6)
							{
								Hexdump.ToHexdump(Log, token, 0, token.Length);
							}
						}
						ServerChallenge = msg2.GetChallenge();
						NtlmsspFlags &= msg2.GetFlags();
						//                  netbiosName = getNtlmsspListItem(token, 0x0001);
						Type3Message msg3 = new Type3Message(msg2, Auth.GetPassword(), Auth.GetDomain(), 
							Auth.GetUsername(), Workstation, NtlmsspFlags);
						token = msg3.ToByteArray();
						if (Log.Level >= 4)
						{
							Log.WriteLine(msg3);
							if (Log.Level >= 6)
							{
								Hexdump.ToHexdump(Log, token, 0, token.Length);
							}
						}
						if ((NtlmsspFlags & NtlmFlags.NtlmsspNegotiateSign) != 0)
						{
							SigningKey = msg3.GetMasterKey();
						}
						isEstablished = true;
						State++;
						break;
					}
					catch (Exception e)
					{
						throw new SmbException(e.Message, e);
					}					
				}

				default:
				{
					throw new SmbException("Invalid state");
				}
			}
			return token;
		}
	}