Skip to main content

Basic protocol to send files using the hairgap binary ( github.com/cea-sec/hairgap ).

Project description

Hairgap

Basic protocol to send files using the hairgap binary. The goal is to send random files through a unidirectionnal data-diode using UDP connections.

Build Status Documentation Status PyPI version LGTM Grade

By default, hairgap can only send a file, without its name nor metadata. This Python library implements a basic protocol to send complete directories with checksums.

This protocol is customizable and the sender can add some attributes (a Dict[str, str]) to each transfer.

  • We assume that the hairgap binary is installed and in the PATH environment variable.
  • The MAC adress of the destination must be known from the sender machine. You can inject this information into the ARP cache of the sender machine:
DESTINATION_IP="the IP address of the destination machine"
DESTINATION_MAC="the MAC address of the destination machine"
arp -s ${DESTINATION_IP} ${DESTINATION_MAC}

First, you must start the receiver on the destination side:

python3 -m pip install hairgap

DESTINATION_IP="the IP address of the destination machine"
pyhairgap receive ${DESTINATION_IP} directory/

Then you can send directories:

python3 -m pip install hairgap

DESTINATION_IP="the IP address of the destination machine"
pyhairgap send ${DESTINATION_IP} directory/

Hairgap binaries

You need to compile hairgap binaires yourself since no official package exists. However, a Python package (hairgap-binaries) has been created to distribute precompiled binaries for Linux x86_64. This package is automatically detected and used.

python3 -m pip install hairgap-binaries

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hairgap-1.2.4.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hairgap-1.2.4-py3-none-any.whl (26.6 kB view details)

Uploaded Python 3

File details

Details for the file hairgap-1.2.4.tar.gz.

File metadata

  • Download URL: hairgap-1.2.4.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for hairgap-1.2.4.tar.gz
Algorithm Hash digest
SHA256 7cfc021c16c7215112ccc836093f14f699cf70bd27385d974491687a2339a976
MD5 2fa68ca9dd5c0b04ebf548a4372d7189
BLAKE2b-256 1e28ce634fe63641130fcd4264ba295d39a6db502f3e82ecf5a7bdb6536fcbae

See more details on using hashes here.

File details

Details for the file hairgap-1.2.4-py3-none-any.whl.

File metadata

  • Download URL: hairgap-1.2.4-py3-none-any.whl
  • Upload date:
  • Size: 26.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for hairgap-1.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 37bb1625dc2ac6a172b439bec459213151a6c3fd460b86172790c5f42732a966
MD5 3b42bf022f254e16efca214658a88e3a
BLAKE2b-256 c586de3329d7b9650d4d63a49da130c0a6b3b8329c9e65604fcda31846127d2e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page