Git Product home page Git Product logo

packet-crafting's People

Contributors

mets634 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

packet-crafting's Issues

Add API protection

Currently, the library leaks many details about the API. For example, packet:show prints the inner representation of the packet. Also, there is no protection from the user. If the user decides to add arbitrary data to a packet, it will work. We should conceal and protect the internals of the library. This should be done on the library as a whole, and also between the packages.

Add constraints to network layers in BSL

When constructing network layers, there are some constraints that apply to some of the fields. For example, a field representing a checksum should be checked that its value is correct. We should support using constraints on BSL structures.

Add raw layer

Many network packets have raw data. We should add a network layer that supports this.

Add pretty formatting of BSL-defined packet fields

Currently, all of a packet's layers are looked upon as integers. We should add a method of pretty printing and reading of the layer's values. For example, IPs should be represented like so "127.0.0.1" instead of an integer.

Create a method in which new network layers can be created

We should have a method of creating new network layer structures, such that it will be very easy to add new layers. This means creating a mini-language (called BSL - Binary Structure Layer), that will allow expressing the network layers. BSL must support (in the meantime):

  1. Specifying field names.
  2. Specifying field sizes in bits.
  3. Specifying default values for the fields (or not allowing default values).
  4. Specifying constraints on the allowed values.

Add optional fields to BSL

Some network packets have fields that aren't required (like IPv4's options). We should add a way to use this in BSL.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.