/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment"/> /// </param> public AuthenticationFrame(ByteArraySegment bas) { header = new ByteArraySegment(bas); FrameControl = new FrameControlField(FrameControlBytes); Duration = new DurationField(DurationBytes); DestinationAddress = GetAddress(0); SourceAddress = GetAddress(1); BssId = GetAddress(2); SequenceControl = new SequenceControlField(SequenceControlBytes); AuthenticationAlgorithmNumber = AuthenticationAlgorithmNumberBytes; AuthenticationAlgorithmTransactionSequenceNumber = AuthenticationAlgorithmTransactionSequenceNumberBytes; if (bas.Length > AuthenticationFields.InformationElement1Position) { //create a segment that just refers to the info element section ByteArraySegment infoElementsSegment = new ByteArraySegment(bas.Bytes, (bas.Offset + AuthenticationFields.InformationElement1Position), (bas.Length - AuthenticationFields.InformationElement1Position)); InformationElements = new InformationElementList(infoElementsSegment); } else { InformationElements = new InformationElementList(); } //cant set length until after we have handled the information elements //as they vary in length header.Length = FrameSize; }
private void MarshalRawPacket(IntPtr /* pcap_pkthdr* */ header, IntPtr data) { //RawCapture p; // marshal the header PcapHeader pcapHeader = PcapHeader.FromPointer(header); var PacketData = new byte[pcapHeader.CaptureLength]; Marshal.Copy(data, PacketData, 0, (int)pcapHeader.CaptureLength); LinkLayers linkType = (LinkLayers)pcap_datalink(PcapHandle); //we're only interested in the WiFi Traffic if (linkType == LinkLayers.Ieee80211 && PacketData.Length > 2) { ushort FrameFieldValue = (ushort)(PacketData[0] << 8 | PacketData[1]); FrameControlField field = new FrameControlField(FrameFieldValue); switch (field.SubType) { case FrameSubTypes.ManagementBeacon: { break; } } } //p = new RawCapture(LinkType, new PosixTimeval(pcapHeader.Seconds, pcapHeader.MicroSeconds), pkt_data); }
/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment"/> /// </param> public ProbeRequestFrame (ByteArraySegment bas) { header = new ByteArraySegment (bas); FrameControl = new FrameControlField (FrameControlBytes); Duration = new DurationField (DurationBytes); DestinationAddress = GetAddress (0); SourceAddress = GetAddress (1); BssId = GetAddress (2); SequenceControl = new SequenceControlField (SequenceControlBytes); if(bas.Length > ProbeRequestFields.InformationElement1Position) { //create a segment that just refers to the info element section ByteArraySegment infoElementsSegment = new ByteArraySegment (bas.Bytes, (bas.Offset + ProbeRequestFields.InformationElement1Position), (bas.Length - ProbeRequestFields.InformationElement1Position)); InformationElements = new InformationElementList (infoElementsSegment); } else { InformationElements = new InformationElementList (); } //cant set length until after we have handled the information elements //as they vary in length header.Length = FrameSize; }
/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment"/> /// </param> public ProbeResponseFrame(ByteArraySegment bas) { header = new ByteArraySegment(bas); FrameControl = new FrameControlField(FrameControlBytes); Duration = new DurationField(DurationBytes); DestinationAddress = GetAddress(0); SourceAddress = GetAddress(1); BssId = GetAddress(2); SequenceControl = new SequenceControlField(SequenceControlBytes); Timestamp = TimestampBytes; BeaconInterval = BeaconIntervalBytes; CapabilityInformation = new CapabilityInformationField(CapabilityInformationBytes); if (bas.Length > ProbeResponseFields.InformationElement1Position) { //create a segment that just refers to the info element section ByteArraySegment infoElementsSegment = new ByteArraySegment(bas.Bytes, (bas.Offset + ProbeResponseFields.InformationElement1Position), (bas.Length - ProbeResponseFields.InformationElement1Position)); InformationElements = new InformationElementList(infoElementsSegment); } else { InformationElements = new InformationElementList(); } //cant set length until after we have handled the information elements //as they vary in length header.Length = FrameSize; }
/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment"/> /// </param> public ReassociationRequestFrame(ByteArraySegment bas) { header = new ByteArraySegment(bas); FrameControl = new FrameControlField(FrameControlBytes); Duration = new DurationField(DurationBytes); DestinationAddress = GetAddress(0); SourceAddress = GetAddress(1); BssId = GetAddress(2); SequenceControl = new SequenceControlField(SequenceControlBytes); CapabilityInformation = new CapabilityInformationField(CapabilityInformationBytes); ListenInterval = ListenIntervalBytes; CurrentAccessPointAddress = CurrentAccessPointAddressBytes; if (bas.Length > ReassociationRequestFields.InformationElement1Position) { //create a segment that just refers to the info element section ByteArraySegment infoElementsSegment = new ByteArraySegment(bas.Bytes, (bas.Offset + ReassociationRequestFields.InformationElement1Position), (bas.Length - ReassociationRequestFields.InformationElement1Position)); InformationElements = new InformationElementList(infoElementsSegment); } else { InformationElements = new InformationElementList(); } //cant set length until after we have handled the information elements //as they vary in length header.Length = FrameSize; }
public void Test_SetToDsProperty() { var frameControl = new FrameControlField { ToDS = true }; Assert.IsTrue(frameControl.ToDS); }
public void Test_SetRetryProperty() { var frameControl = new FrameControlField { Retry = true }; Assert.IsTrue(frameControl.Retry); }
public void Test_SetOrderProperty() { var frameControl = new FrameControlField { Order = true }; Assert.IsTrue(frameControl.Order); }
public void Test_SetMoreFragmentsProperty() { var frameControl = new FrameControlField { MoreFragments = true }; Assert.IsTrue(frameControl.MoreFragments); }
public void Test_SetMoreDataProperty() { var frameControl = new FrameControlField { MoreData = true }; Assert.IsTrue(frameControl.MoreData); }
public void Test_SetWepProperty() { var frameControl = new FrameControlField { Protected = true }; Assert.IsTrue(frameControl.Protected); }
public void Test_SetFromDsProperty() { FrameControlField frameControl = new FrameControlField(); frameControl.FromDS = true; Assert.IsTrue(frameControl.FromDS); }
public void Test_SetMoreFragmentsProperty() { FrameControlField frameControl = new FrameControlField(); frameControl.MoreFragments = true; Assert.IsTrue(frameControl.MoreFragments); }
public void Test_SetRetryProperty() { FrameControlField frameControl = new FrameControlField(); frameControl.Retry = true; Assert.IsTrue(frameControl.Retry); }
public void Test_SetMoreDataProperty() { FrameControlField frameControl = new FrameControlField(); frameControl.MoreData = true; Assert.IsTrue(frameControl.MoreData); }
public void Test_SetPowerManagementProperty() { FrameControlField frameControl = new FrameControlField(); frameControl.PowerManagement = true; Assert.IsTrue(frameControl.PowerManagement); }
public void Test_SetWepProperty() { FrameControlField frameControl = new FrameControlField(); frameControl.Wep = true; Assert.IsTrue(frameControl.Wep); }
public void Test_SetOrderProperty() { FrameControlField frameControl = new FrameControlField(); frameControl.Order = true; Assert.IsTrue(frameControl.Order); }
public void Test_SetProtocolVersionProperty_ValueTooLarge() { var ex = Assert.Throws <ArgumentException>( () => { var _ = new FrameControlField { ProtocolVersion = 4 }; } ); Assert.That(ex.Message, Is.EqualTo("Invalid protocol version value. Value must be in the range 0-3.")); }
/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment"/> /// </param> public CtsFrame (ByteArraySegment bas) { header = new ByteArraySegment (bas); FrameControl = new FrameControlField (FrameControlBytes); Duration = new DurationField (DurationBytes); ReceiverAddress = GetAddress(0); header.Length = FrameSize; }
/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment"/> /// </param> public CtsFrame(ByteArraySegment bas) { header = new ByteArraySegment(bas); FrameControl = new FrameControlField(FrameControlBytes); Duration = new DurationField(DurationBytes); ReceiverAddress = GetAddress(0); header.Length = FrameSize; }
/// <summary> /// Initializes a new instance of the <see cref="PacketDotNet.Ieee80211.NullDataFrame"/> class. /// </summary> /// <param name='bas'> /// A <see cref="ByteArraySegment"/> /// </param> public NullDataFrame (ByteArraySegment bas) { header = new ByteArraySegment (bas); FrameControl = new FrameControlField (FrameControlBytes); Duration = new DurationField (DurationBytes); SequenceControl = new SequenceControlField (SequenceControlBytes); ReadAddresses (); header.Length = FrameSize; }
/// <summary> /// Initializes a new instance of the <see cref="Kavprot.Packets.Ieee80211.NullDataFrame"/> class. /// </summary> /// <param name='bas'> /// A <see cref="ByteArraySegment"/> /// </param> public NullDataFrame(ByteArraySegment bas) { header = new ByteArraySegment(bas); FrameControl = new FrameControlField(FrameControlBytes); Duration = new DurationField(DurationBytes); SequenceControl = new SequenceControlField(SequenceControlBytes); ReadAddresses(); header.Length = FrameSize; }
public void Test_SetTypeProperty() { FrameControlField frameControl = new FrameControlField(); frameControl.SubType = FrameControlField.FrameSubTypes.Data; Assert.AreEqual(FrameControlField.FrameSubTypes.Data, frameControl.SubType); frameControl.SubType = FrameControlField.FrameSubTypes.ManagementAuthentication; Assert.AreEqual(FrameControlField.FrameSubTypes.ManagementAuthentication, frameControl.SubType); frameControl.SubType = FrameControlField.FrameSubTypes.ControlACK; Assert.AreEqual(FrameControlField.FrameSubTypes.ControlACK, frameControl.SubType); }
/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment"/> /// </param> public BlockAcknowledgmentRequestFrame(ByteArraySegment bas) { header = new ByteArraySegment(bas); FrameControl = new FrameControlField(FrameControlBytes); Duration = new DurationField(DurationBytes); ReceiverAddress = GetAddress(0); TransmitterAddress = GetAddress(1); BlockAcknowledgmentControl = new BlockAcknowledgmentControlField(BlockAckRequestControlBytes); BlockAckStartingSequenceControl = BlockAckStartingSequenceControlBytes; header.Length = FrameSize; }
public void Test_SetTypeProperty() { var frameControl = new FrameControlField { SubType = FrameControlField.FrameSubTypes.Data }; Assert.AreEqual(FrameControlField.FrameSubTypes.Data, frameControl.SubType); frameControl.SubType = FrameControlField.FrameSubTypes.ManagementAuthentication; Assert.AreEqual(FrameControlField.FrameSubTypes.ManagementAuthentication, frameControl.SubType); frameControl.SubType = FrameControlField.FrameSubTypes.ControlAck; Assert.AreEqual(FrameControlField.FrameSubTypes.ControlAck, frameControl.SubType); }
/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment"/> /// </param> public DisassociationFrame(ByteArraySegment bas) { header = new ByteArraySegment(bas); FrameControl = new FrameControlField(FrameControlBytes); Duration = new DurationField(DurationBytes); DestinationAddress = GetAddress(0); SourceAddress = GetAddress(1); BssId = GetAddress(2); SequenceControl = new SequenceControlField(SequenceControlBytes); Reason = ReasonBytes; header.Length = FrameSize; }
/// <summary> /// Initializes a new instance of the <see cref="PacketDotNet.Ieee80211.DataDataFrame"/> class. /// </summary> /// <param name='bas'> /// Bas. /// </param> public DataDataFrame (ByteArraySegment bas) { header = new ByteArraySegment (bas); FrameControl = new FrameControlField (FrameControlBytes); Duration = new DurationField (DurationBytes); SequenceControl = new SequenceControlField (SequenceControlBytes); ReadAddresses (); //must do this after reading FrameControl header.Length = FrameSize; var availablePayloadLength = GetAvailablePayloadLength(); if(availablePayloadLength > 0) { payloadPacketOrData.TheByteArraySegment = header.EncapsulatedBytes (availablePayloadLength); } }
public void Test_SetProtocolVersionProperty() { FrameControlField frameControl = new FrameControlField(); frameControl.ProtocolVersion = 3; Assert.AreEqual(3, frameControl.ProtocolVersion); frameControl.ProtocolVersion = 2; Assert.AreEqual(2, frameControl.ProtocolVersion); frameControl.ProtocolVersion = 1; Assert.AreEqual(1, frameControl.ProtocolVersion); frameControl.ProtocolVersion = 0; Assert.AreEqual(0, frameControl.ProtocolVersion); }
public void Test_Constructor_AckFrame() { FrameControlField frameControl = new FrameControlField(0xD410); Assert.AreEqual(0x0, frameControl.ProtocolVersion); Assert.AreEqual(FrameControlField.FrameTypes.Control, frameControl.Type); Assert.AreEqual(FrameControlField.FrameSubTypes.ControlACK, frameControl.SubType); Assert.IsFalse(frameControl.FromDS); Assert.IsFalse(frameControl.Wep); Assert.IsFalse(frameControl.ToDS); Assert.IsFalse(frameControl.MoreFragments); Assert.IsFalse(frameControl.Retry); Assert.IsTrue(frameControl.PowerManagement); Assert.IsFalse(frameControl.MoreData); Assert.IsFalse(frameControl.Order); }
public void Test_Constructor_ClearToSendFrame() { FrameControlField frameControl = new FrameControlField(0xC400); Assert.AreEqual(0x0, frameControl.ProtocolVersion); Assert.AreEqual(FrameControlField.FrameTypes.Control, frameControl.Type); Assert.AreEqual(FrameControlField.FrameSubTypes.ControlCTS, frameControl.SubType); Assert.IsFalse(frameControl.FromDS); Assert.IsFalse(frameControl.Protected); Assert.IsFalse(frameControl.ToDS); Assert.IsFalse(frameControl.MoreFragments); Assert.IsFalse(frameControl.Retry); Assert.IsFalse(frameControl.PowerManagement); Assert.IsFalse(frameControl.MoreData); Assert.IsFalse(frameControl.Order); }
public void Test_Constructor_ClearToSendFrame() { FrameControlField frameControl = new FrameControlField(0xC400); Assert.AreEqual(0x0, frameControl.ProtocolVersion); Assert.AreEqual(FrameControlField.FrameTypes.Control, frameControl.Type); Assert.AreEqual(FrameControlField.FrameSubTypes.ControlCTS, frameControl.SubType); Assert.IsFalse(frameControl.FromDS); Assert.IsFalse(frameControl.Wep); Assert.IsFalse(frameControl.ToDS); Assert.IsFalse(frameControl.MoreFragments); Assert.IsFalse(frameControl.Retry); Assert.IsFalse(frameControl.PowerManagement); Assert.IsFalse(frameControl.MoreData); Assert.IsFalse(frameControl.Order); }
public void Test_Constructor_DisassociationFrame() { FrameControlField frameControl = new FrameControlField(0xA01B); Assert.AreEqual(0x0, frameControl.ProtocolVersion); Assert.AreEqual(FrameControlField.FrameTypes.Management, frameControl.Type); Assert.AreEqual(FrameControlField.FrameSubTypes.ManagementDisassociation, frameControl.SubType); Assert.IsTrue(frameControl.FromDS); Assert.IsTrue(frameControl.ToDS); Assert.IsFalse(frameControl.MoreFragments); Assert.IsFalse(frameControl.MoreData); Assert.IsFalse(frameControl.Protected); Assert.IsTrue(frameControl.Retry); Assert.IsTrue(frameControl.PowerManagement); Assert.IsFalse(frameControl.Order); }
public void Test_Constructor_EncryptedDataFrame() { FrameControlField frameControl = new FrameControlField(0x0842); Assert.AreEqual(0x0, frameControl.ProtocolVersion); Assert.AreEqual(FrameControlField.FrameTypes.Data, frameControl.Type); Assert.AreEqual(FrameControlField.FrameSubTypes.Data, frameControl.SubType); Assert.IsTrue(frameControl.FromDS); Assert.IsTrue(frameControl.Protected); Assert.IsFalse(frameControl.ToDS); Assert.IsFalse(frameControl.MoreFragments); Assert.IsFalse(frameControl.Retry); Assert.IsFalse(frameControl.PowerManagement); Assert.IsFalse(frameControl.MoreData); Assert.IsFalse(frameControl.Order); }
public void Test_Constructor_EncryptedDataFrame() { FrameControlField frameControl = new FrameControlField(0x0842); Assert.AreEqual(0x0, frameControl.ProtocolVersion); Assert.AreEqual(FrameControlField.FrameTypes.Data, frameControl.Type); Assert.AreEqual(FrameControlField.FrameSubTypes.Data, frameControl.SubType); Assert.IsTrue(frameControl.FromDS); Assert.IsTrue(frameControl.Wep); Assert.IsFalse(frameControl.ToDS); Assert.IsFalse(frameControl.MoreFragments); Assert.IsFalse(frameControl.Retry); Assert.IsFalse(frameControl.PowerManagement); Assert.IsFalse(frameControl.MoreData); Assert.IsFalse(frameControl.Order); }
/// <summary> /// Initializes a new instance of the <see cref="Kavprot.Packets.Ieee80211.DataDataFrame"/> class. /// </summary> /// <param name='bas'> /// Bas. /// </param> public DataDataFrame(ByteArraySegment bas) { header = new ByteArraySegment(bas); FrameControl = new FrameControlField(FrameControlBytes); Duration = new DurationField(DurationBytes); SequenceControl = new SequenceControlField(SequenceControlBytes); ReadAddresses(); //must do this after reading FrameControl header.Length = FrameSize; var availablePayloadLength = GetAvailablePayloadLength(); if (availablePayloadLength > 0) { payloadPacketOrData.TheByteArraySegment = header.EncapsulatedBytes(availablePayloadLength); } }
/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment"/> /// </param> public AssociationResponseFrame (ByteArraySegment bas) { header = new ByteArraySegment (bas); FrameControl = new FrameControlField (FrameControlBytes); Duration = new DurationField (DurationBytes); DestinationAddress = GetAddress (0); SourceAddress = GetAddress (1); BssId = GetAddress (2); SequenceControl = new SequenceControlField (SequenceControlBytes); CapabilityInformation = new CapabilityInformationField (CapabilityInformationBytes); StatusCode = StatusCodeBytes; AssociationId = AssociationIdBytes; if(bas.Length > AssociationResponseFields.InformationElement1Position) { //create a segment that just refers to the info element section ByteArraySegment infoElementsSegment = new ByteArraySegment (bas.Bytes, (bas.Offset + AssociationResponseFields.InformationElement1Position), (bas.Length - AssociationResponseFields.InformationElement1Position)); InformationElements = new InformationElementList (infoElementsSegment); } else { InformationElements = new InformationElementList(); } //cant set length until after we have handled the information elements //as they vary in length header.Length = FrameSize; }
/// <summary> /// Initializes a new instance of the <see cref="PacketDotNet.Ieee80211.QosDataFrame"/> class. /// </summary> /// <param name='bas'> /// A <see cref="ByteArraySegment"/> /// </param> public QosDataFrame (ByteArraySegment bas) { header = new ByteArraySegment (bas); FrameControl = new FrameControlField (FrameControlBytes); Duration = new DurationField (DurationBytes); SequenceControl = new SequenceControlField (SequenceControlBytes); QosControl = QosControlBytes; ReadAddresses (); header.Length = FrameSize; var availablePayloadLength = GetAvailablePayloadLength(); if (availablePayloadLength > SNAPFields.HeaderLength) { payloadPacketOrData.ThePacket = new SNAPPacket(header.EncapsulatedBytes(availablePayloadLength)); } else { payloadPacketOrData.TheByteArraySegment = header.EncapsulatedBytes(availablePayloadLength); } }
public void Test_Constructor_DisassociationFrame() { FrameControlField frameControl = new FrameControlField(0xA01B); Assert.AreEqual(0x0, frameControl.ProtocolVersion); Assert.AreEqual(FrameControlField.FrameTypes.Management, frameControl.Type); Assert.AreEqual(FrameControlField.FrameSubTypes.ManagementDisassociation, frameControl.SubType); Assert.IsTrue(frameControl.FromDS); Assert.IsTrue(frameControl.ToDS); Assert.IsFalse(frameControl.MoreFragments); Assert.IsFalse(frameControl.MoreData); Assert.IsFalse(frameControl.Wep); Assert.IsTrue(frameControl.Retry); Assert.IsTrue(frameControl.PowerManagement); Assert.IsFalse(frameControl.Order); }
/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment"/> /// </param> public BlockAcknowledgmentRequestFrame (ByteArraySegment bas) { header = new ByteArraySegment (bas); FrameControl = new FrameControlField (FrameControlBytes); Duration = new DurationField (DurationBytes); ReceiverAddress = GetAddress (0); TransmitterAddress = GetAddress (1); BlockAcknowledgmentControl = new BlockAcknowledgmentControlField (BlockAckRequestControlBytes); BlockAckStartingSequenceControl = BlockAckStartingSequenceControlBytes; header.Length = FrameSize; }
public void Test_SetProtocolVersionProperty_ValueTooLarge() { FrameControlField frameControl = new FrameControlField(); frameControl.ProtocolVersion = 4; }
/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment"/> /// </param> public DeauthenticationFrame (ByteArraySegment bas) { header = new ByteArraySegment (bas); FrameControl = new FrameControlField (FrameControlBytes); Duration = new DurationField (DurationBytes); DestinationAddress = GetAddress (0); SourceAddress = GetAddress (1); BssId = GetAddress (2); SequenceControl = new SequenceControlField (SequenceControlBytes); Reason = ReasonBytes; header.Length = FrameSize; }
/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment"/> /// </param> public ActionFrame (ByteArraySegment bas) { header = new ByteArraySegment (bas); FrameControl = new FrameControlField (FrameControlBytes); Duration = new DurationField (DurationBytes); DestinationAddress = GetAddress (0); SourceAddress = GetAddress (1); BssId = GetAddress (2); SequenceControl = new SequenceControlField (SequenceControlBytes); header.Length = FrameSize; var availablePayloadLength = GetAvailablePayloadLength(); if(availablePayloadLength > 0) { payloadPacketOrData.TheByteArraySegment = header.EncapsulatedBytes (availablePayloadLength); } }