internal NegotiateResponseAuthenticationToken(byte[] data, string supported_mech, NegotiateAuthenticationState state, AuthenticationToken token, byte[] mic) : base(data, token, mic) { SupportedMechanism = supported_mech; State = state; }
private static bool ParseResp(byte[] data, DERValue[] values, int token_count, bool client, out NegotiateAuthenticationToken token) { token = null; if (!values.CheckValueSequence()) { return(false); } string mech = null; NegotiateAuthenticationState state = NegotiateAuthenticationState.Reject; AuthenticationToken auth_token = null; byte[] mic = null; foreach (var next in values[0].Children) { if (next.Type != DERTagType.ContextSpecific) { return(false); } switch (next.Tag) { case 0: state = (NegotiateAuthenticationState)next.ReadChildEnumerated(); break; case 1: mech = next.ReadChildObjID(); break; case 2: auth_token = ParseToken(next.ReadChildOctetString(), token_count, client); break; case 3: mic = next.ReadChildOctetString(); break; default: return(false); } } token = new NegotiateResponseAuthenticationToken(data, mech, state, auth_token, mic); return(true); }