[package]
edition = "2021"
rust-version = "1.78"
name = "crafter"
version = "0.3.2"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Packet-level network interaction for Rust tools and agents."
homepage = "https://github.com/pellegre/libcrafter"
documentation = "https://docs.rs/crafter"
readme = "README.md"
keywords = [
"packets",
"pcap",
"networking",
"packet-crafting",
"testing",
]
categories = [
"network-programming",
"development-tools",
]
license = "MIT"
repository = "https://github.com/pellegre/libcrafter"
[features]
default = []
whad = [
"dep:prost",
"dep:prost-build",
"dep:serialport",
]
[lib]
name = "crafter"
path = "src/lib.rs"
[[example]]
name = "arp_who_has"
path = "examples/arp_who_has.rs"
[[example]]
name = "batch_send"
path = "examples/batch_send.rs"
[[example]]
name = "batch_send_recv"
path = "examples/batch_send_recv.rs"
[[example]]
name = "bgp_session"
path = "examples/bgp_session.rs"
[[example]]
name = "ble_advertise"
path = "examples/ble_advertise.rs"
[[example]]
name = "capture_pcap"
path = "examples/capture_pcap.rs"
[[example]]
name = "custom_registry"
path = "examples/custom_registry.rs"
[[example]]
name = "decode_bytes"
path = "examples/decode_bytes.rs"
[[example]]
name = "dhcpv4_discover"
path = "examples/dhcpv4_discover.rs"
[[example]]
name = "dhcpv4_leasequery"
path = "examples/dhcpv4_leasequery.rs"
[[example]]
name = "dhcpv4_option82"
path = "examples/dhcpv4_option82.rs"
[[example]]
name = "dhcpv6_information_request"
path = "examples/dhcpv6_information_request.rs"
[[example]]
name = "dhcpv6_prefix_delegation"
path = "examples/dhcpv6_prefix_delegation.rs"
[[example]]
name = "dhcpv6_relay"
path = "examples/dhcpv6_relay.rs"
[[example]]
name = "dhcpv6_solicit"
path = "examples/dhcpv6_solicit.rs"
[[example]]
name = "dns_query"
path = "examples/dns_query.rs"
[[example]]
name = "dot11_beacon_inject"
path = "examples/dot11_beacon_inject.rs"
[[example]]
name = "dot11_beacon_rsn"
path = "examples/dot11_beacon_rsn.rs"
[[example]]
name = "dot11_radiotap_ipv4"
path = "examples/dot11_radiotap_ipv4.rs"
[[example]]
name = "dot15d4_frame"
path = "examples/dot15d4_frame.rs"
[[example]]
name = "eapol_key_parse"
path = "examples/eapol_key_parse.rs"
[[example]]
name = "hello_world"
path = "examples/hello_world.rs"
[[example]]
name = "icmpv4_error"
path = "examples/icmpv4_error.rs"
[[example]]
name = "icmpv6_echo"
path = "examples/icmpv6_echo.rs"
[[example]]
name = "igmp_query"
path = "examples/igmp_query.rs"
[[example]]
name = "igmp_report"
path = "examples/igmp_report.rs"
[[example]]
name = "interface_helpers"
path = "examples/interface_helpers.rs"
[[example]]
name = "ip_defrag_offline"
path = "examples/ip_defrag_offline.rs"
[[example]]
name = "ip_defrag_pcap_summary"
path = "examples/ip_defrag_pcap_summary.rs"
[[example]]
name = "ip_fragment_offline"
path = "examples/ip_fragment_offline.rs"
[[example]]
name = "ip_ranges"
path = "examples/ip_ranges.rs"
[[example]]
name = "ipsec_ah"
path = "examples/ipsec_ah.rs"
[[example]]
name = "ipsec_esp"
path = "examples/ipsec_esp.rs"
[[example]]
name = "ipsec_ikev2"
path = "examples/ipsec_ikev2.rs"
[[example]]
name = "ipv4_enrichment"
path = "examples/ipv4_enrichment.rs"
[[example]]
name = "ipv4_options"
path = "examples/ipv4_options.rs"
[[example]]
name = "ipv6_extensions"
path = "examples/ipv6_extensions.rs"
[[example]]
name = "linux_sll"
path = "examples/linux_sll.rs"
[[example]]
name = "mqtt_session"
path = "examples/mqtt_session.rs"
[[example]]
name = "network_ping"
path = "examples/network_ping.rs"
[[example]]
name = "null_loopback"
path = "examples/null_loopback.rs"
[[example]]
name = "ospf_packets"
path = "examples/ospf_packets.rs"
[[example]]
name = "packet_building"
path = "examples/packet_building.rs"
[[example]]
name = "packet_inspection"
path = "examples/packet_inspection.rs"
[[example]]
name = "pcap_read"
path = "examples/pcap_read.rs"
[[example]]
name = "pcap_write"
path = "examples/pcap_write.rs"
[[example]]
name = "reply_matching"
path = "examples/reply_matching.rs"
[[example]]
name = "rip_auth"
path = "examples/rip_auth.rs"
[[example]]
name = "rip_request"
path = "examples/rip_request.rs"
[[example]]
name = "rip_response"
path = "examples/rip_response.rs"
[[example]]
name = "ripng_request"
path = "examples/ripng_request.rs"
[[example]]
name = "ripng_response"
path = "examples/ripng_response.rs"
[[example]]
name = "send_packet"
path = "examples/send_packet.rs"
[[example]]
name = "send_plan"
path = "examples/send_plan.rs"
[[example]]
name = "send_recv_icmp"
path = "examples/send_recv_icmp.rs"
[[example]]
name = "sniffer_offline"
path = "examples/sniffer_offline.rs"
[[example]]
name = "snmp_get"
path = "examples/snmp_get.rs"
[[example]]
name = "snmp_trap"
path = "examples/snmp_trap.rs"
[[example]]
name = "snmpv3_message"
path = "examples/snmpv3_message.rs"
[[example]]
name = "tcp_options"
path = "examples/tcp_options.rs"
[[example]]
name = "vlan"
path = "examples/vlan.rs"
[[example]]
name = "wire_pcap_recorder"
path = "examples/wire_pcap_recorder.rs"
[[example]]
name = "wire_pcap_sniffer"
path = "examples/wire_pcap_sniffer.rs"
[[example]]
name = "wire_transform_chain"
path = "examples/wire_transform_chain.rs"
[[example]]
name = "wpa_decrypt_offline"
path = "examples/wpa_decrypt_offline.rs"
[[test]]
name = "bgp_decode"
path = "tests/bgp_decode.rs"
[[test]]
name = "bgp_golden"
path = "tests/bgp_golden.rs"
[[test]]
name = "bgp_malformed"
path = "tests/bgp_malformed.rs"
[[test]]
name = "ble_decode"
path = "tests/ble_decode.rs"
[[test]]
name = "ble_pcap"
path = "tests/ble_pcap.rs"
[[test]]
name = "ble_resilience"
path = "tests/ble_resilience.rs"
[[test]]
name = "dhcpv6_core"
path = "tests/dhcpv6_core.rs"
[[test]]
name = "dhcpv6_malformed"
path = "tests/dhcpv6_malformed.rs"
[[test]]
name = "dhcpv6_roundtrip"
path = "tests/dhcpv6_roundtrip.rs"
[[test]]
name = "dot15d4_decode"
path = "tests/dot15d4_decode.rs"
[[test]]
name = "dot15d4_pcap"
path = "tests/dot15d4_pcap.rs"
[[test]]
name = "dot15d4_public_api"
path = "tests/dot15d4_public_api.rs"
[[test]]
name = "dot15d4_resilience"
path = "tests/dot15d4_resilience.rs"
[[test]]
name = "fixture_suite"
path = "tests/fixture_suite.rs"
[[test]]
name = "icmp_golden"
path = "tests/icmp_golden.rs"
[[test]]
name = "icmpv4_public_api"
path = "tests/icmpv4_public_api.rs"
[[test]]
name = "icmpv6_ndp"
path = "tests/icmpv6_ndp.rs"
[[test]]
name = "igmp_golden"
path = "tests/igmp_golden.rs"
[[test]]
name = "igmp_malformed"
path = "tests/igmp_malformed.rs"
[[test]]
name = "igmp_public_api"
path = "tests/igmp_public_api.rs"
[[test]]
name = "igmp_roundtrip"
path = "tests/igmp_roundtrip.rs"
[[test]]
name = "ipsec_golden"
path = "tests/ipsec_golden.rs"
[[test]]
name = "ipsec_public_api"
path = "tests/ipsec_public_api.rs"
[[test]]
name = "ipv4_public_api"
path = "tests/ipv4_public_api.rs"
[[test]]
name = "ipv6_public_api"
path = "tests/ipv6_public_api.rs"
[[test]]
name = "mqtt_decode"
path = "tests/mqtt_decode.rs"
[[test]]
name = "mqtt_golden"
path = "tests/mqtt_golden.rs"
[[test]]
name = "mqtt_malformed"
path = "tests/mqtt_malformed.rs"
[[test]]
name = "mqtt_v5"
path = "tests/mqtt_v5.rs"
[[test]]
name = "public_api"
path = "tests/public_api.rs"
[[test]]
name = "quic_crypto_vectors"
path = "tests/quic_crypto_vectors.rs"
[[test]]
name = "quic_golden"
path = "tests/quic_golden.rs"
[[test]]
name = "quic_malformed"
path = "tests/quic_malformed.rs"
[[test]]
name = "quic_property"
path = "tests/quic_property.rs"
[[test]]
name = "quic_public_api"
path = "tests/quic_public_api.rs"
[[test]]
name = "radiotap_inject"
path = "tests/radiotap_inject.rs"
[[test]]
name = "resilience"
path = "tests/resilience.rs"
[[test]]
name = "rip_golden"
path = "tests/rip_golden.rs"
[[test]]
name = "rip_malformed"
path = "tests/rip_malformed.rs"
[[test]]
name = "rip_public_api"
path = "tests/rip_public_api.rs"
[[test]]
name = "ripng_golden"
path = "tests/ripng_golden.rs"
[[test]]
name = "ripng_malformed"
path = "tests/ripng_malformed.rs"
[[test]]
name = "ripng_public_api"
path = "tests/ripng_public_api.rs"
[[test]]
name = "snmp_ber"
path = "tests/snmp_ber.rs"
[[test]]
name = "snmp_golden"
path = "tests/snmp_golden.rs"
[[test]]
name = "snmp_malformed"
path = "tests/snmp_malformed.rs"
[[test]]
name = "snmp_pcap"
path = "tests/snmp_pcap.rs"
[[test]]
name = "snmp_pdu_golden"
path = "tests/snmp_pdu_golden.rs"
[[test]]
name = "snmp_prop"
path = "tests/snmp_prop.rs"
[[test]]
name = "snmp_public_api"
path = "tests/snmp_public_api.rs"
[[test]]
name = "snmpv3_golden"
path = "tests/snmpv3_golden.rs"
[[test]]
name = "whad_backend"
path = "tests/whad_backend.rs"
[[test]]
name = "whad_dot15d4_backend"
path = "tests/whad_dot15d4_backend.rs"
[[test]]
name = "whad_protocol"
path = "tests/whad_protocol.rs"
[[test]]
name = "whad_transport"
path = "tests/whad_transport.rs"
[dependencies.aes]
version = "0.8"
[dependencies.aes-gcm]
version = "0.10"
[dependencies.cbc]
version = "0.1"
[dependencies.ccm]
version = "0.5"
[dependencies.chacha20]
version = "0.9"
[dependencies.chacha20poly1305]
version = "0.10"
[dependencies.cipher]
version = "0.4"
[dependencies.ctr]
version = "0.9"
[dependencies.hmac]
version = "0.12"
[dependencies.md-5]
version = "0.10"
[dependencies.pbkdf2]
version = "0.12"
[dependencies.pcap]
version = "2.4.0"
[dependencies.pnet_datalink]
version = "0.35.0"
[dependencies.pnet_packet]
version = "0.35.0"
[dependencies.pnet_transport]
version = "0.35.0"
[dependencies.prost]
version = "0.13"
optional = true
[dependencies.serialport]
version = "4.9.0"
optional = true
default-features = false
[dependencies.sha1]
version = "0.10"
[dependencies.sha2]
version = "0.10"
[dependencies.subtle]
version = "2"
[dev-dependencies.proptest]
version = "1"
[build-dependencies.prost-build]
version = "0.13"
optional = true