public void GetUniqueIdentifier() { Random random = new Random(); IPv6Address address = IPv6Address.FromString("fced::1"); Guid deviceId = random.NextGuid(); Mock <ISerializer> serializerMock = new Mock <ISerializer>(MockBehavior.Strict); serializerMock.Setup(x => x.Deserialze <Guid>(deviceId.ToString())).Returns(deviceId).Verifiable(); Mock <IDeviceService> deviceServiceMock = new Mock <IDeviceService>(MockBehavior.Strict); deviceServiceMock.Setup(x => x.GetIPv6LinkLocalAddressFromDevice(deviceId)).Returns(address); var resolver = new DeviceBasedDHCPv6PeerAddressResolver(deviceServiceMock.Object); resolver.ApplyValues(new Dictionary <String, String> { { "DeviceId", deviceId.ToString() }, }, serializerMock.Object); Assert.Equal(address.GetBytes(), resolver.GetUniqueIdentifier(null)); serializerMock.Verify(); deviceServiceMock.Verify(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { IPv6Address address = (IPv6Address)value; Byte[] bytes = address.GetBytes(); writer.WriteValue(Convert.ToBase64String(bytes)); }
public void IPv6Address_FromString(String input, Boolean parseable, Byte[] expectedByteSequence) { if (parseable == false) { Assert.ThrowsAny <Exception>(() => IPv6Address.FromString(input)); return; } IPv6Address address = IPv6Address.FromString(input); Byte[] actual = address.GetBytes(); Assert.Equal(expectedByteSequence, actual); }
public DHCPv6PacketIdentityAssociationAddressSuboption( IPv6Address address, TimeSpan preferedLifetime, TimeSpan validLifetime, IEnumerable <DHCPv6PacketSuboption> suboptions) : base((UInt16)DHCPv6PacketSuboptionsType.IdentityAssociationAddress, ByteHelper.ConcatBytes( address.GetBytes(), ByteHelper.GetBytes((UInt32)preferedLifetime.TotalSeconds), ByteHelper.GetBytes((UInt32)validLifetime.TotalSeconds), ByteHelper.ConcatBytes(suboptions.Select(x => x.GetByteStream())) )) { Address = address; PreferredLifetime = preferedLifetime; ValidLifetime = validLifetime; Suboptions = new List <DHCPv6PacketSuboption>(suboptions); }
public DHCPv6PacketIdentityAssociationPrefixDelegationSuboption( TimeSpan preferedLifetime, TimeSpan validLifetime, Byte prefixLength, IPv6Address address, IEnumerable <DHCPv6PacketSuboption> suboptions) : base((UInt16)DHCPv6PacketSuboptionsType.IdentityAssociationPrefixDelegation, ByteHelper.ConcatBytes( ByteHelper.GetBytes((UInt32)preferedLifetime.TotalSeconds), ByteHelper.GetBytes((UInt32)validLifetime.TotalSeconds), new Byte[] { prefixLength }, address.GetBytes(), ByteHelper.ConcatBytes(suboptions.Select(x => x.GetByteStream())) )) { Address = address; PreferredLifetime = preferedLifetime; ValidLifetime = validLifetime; PrefixLength = prefixLength; Suboptions = new List <DHCPv6PacketSuboption>(suboptions); }
public void GetUniqueIdentifier() { IPv6Address address = IPv6Address.FromString("fced::1"); Mock <ISerializer> serializerMock = new Mock <ISerializer>(MockBehavior.Strict); serializerMock.Setup(x => x.Deserialze <IPv6Address>(address.ToString())).Returns(address).Verifiable(); serializerMock.Setup(x => x.Deserialze <Boolean>("true")).Returns(true).Verifiable(); var resolver = new DHCPv6PeerAddressResolver(); resolver.ApplyValues(new Dictionary <String, String> { { "PeerAddress", address.ToString() }, { "IsUnique", "true" }, }, serializerMock.Object); Assert.Equal(address.GetBytes(), resolver.GetUniqueIdentifier(null)); }
/// <summary> /// Packages up the IPv6 header and the given payload into a byte array /// suitable for sending on a socket. /// </summary> /// <param name="payLoad">Data encapsulated by the IPv6 header</param> /// <returns>Byte array of the IPv6 packet and payload</returns> public override byte[] GetProtocolPacketBytes(byte[] payLoad) { byte[] byteValue, ipv6Packet; int offset = 0; ipv6Packet = new byte[Ipv6HeaderLength + payLoad.Length]; ipv6Packet[offset++] = (byte)((ipVersion << 4) | ((ipTrafficClass >> 4) & 0xF)); // tmpbyte1 = (byte) ( ( ipTrafficClass << 4) & 0xF0); // tmpbyte2 = (byte) ( ( ipFlow >> 16 ) & 0xF ); ipv6Packet[offset++] = (byte)((uint)((ipTrafficClass << 4) & 0xF0) | (uint)((Flow >> 16) & 0xF)); ipv6Packet[offset++] = (byte)((Flow >> 8) & 0xFF); ipv6Packet[offset++] = (byte)(Flow & 0xFF); Console.WriteLine("Next header = {0}", ipNextHeader); byteValue = BitConverter.GetBytes(ipPayloadLength); Array.Copy(byteValue, 0, ipv6Packet, offset, byteValue.Length); offset += byteValue.Length; ipv6Packet[offset++] = (byte)ipNextHeader; ipv6Packet[offset++] = (byte)ipHopLimit; byteValue = ipSourceAddress.GetBytes(); Array.Copy(byteValue, 0, ipv6Packet, offset, byteValue.Length); offset += byteValue.Length; byteValue = ipDestinationAddress.GetBytes(); Array.Copy(byteValue, 0, ipv6Packet, offset, byteValue.Length); offset += byteValue.Length; Array.Copy(payLoad, 0, ipv6Packet, offset, payLoad.Length); return(ipv6Packet); }
public DHCPv6PacketIPAddressOption(UInt16 code, IPv6Address address) : base(code, address.GetBytes()) { Address = address; }