/// <summary> /// Creates an instance from subtype, mobility security parameter index and authentication data. /// </summary> /// <param name="subtype">A number assigned to identify the entity and/or mechanism to be used to authenticate the message.</param> /// <param name="mobilitySecurityParameterIndex"> /// A number in the range [0-4294967296] used to index into the shared-key-based mobility security associations. /// </param> /// <param name="authenticationData"> /// Has the information to authenticate the relevant mobility entity. /// This protects the message beginning at the Mobility Header up to and including the mobility SPI field. /// </param> public IpV6MobilityOptionAuthentication(IpV6AuthenticationSubtype subtype, uint mobilitySecurityParameterIndex, DataSegment authenticationData) : base(IpV6MobilityOptionType.Authentication) { Subtype = subtype; MobilitySecurityParameterIndex = mobilitySecurityParameterIndex; AuthenticationData = authenticationData; }
internal override IpV6MobilityOption CreateInstance(DataSegment data) { if (data.Length < OptionDataMinimumLength) { return(null); } IpV6AuthenticationSubtype subtype = (IpV6AuthenticationSubtype)data[Offset.Subtype]; uint mobilitySecurityParameterIndex = data.ReadUInt(Offset.MobilitySecurityParameterIndex, Endianity.Big); DataSegment authenticationData = data.Subsegment(Offset.AuthenticationData, data.Length - Offset.AuthenticationData); return(new IpV6MobilityOptionAuthentication(subtype, mobilitySecurityParameterIndex, authenticationData)); }