Skip to main content

Send and receive data over serial diode

Project description

Serial Diode

Generic wire protocol and implementation for one-way data transfer over UART serial.

Usage

General

The serial device can be specified with --device and baudrate with --baudrate. If device is unspecified, it will attempt to guess the correct device based on platform and name. If baudrate is unspecified, it defaults to 115200 Hz.

See --help for detailed usage information.

Send

Run diode send <path/to/file> to send <file>.

Receive

Run diode listen, which will listen forever. When it receives a valid payload, it will write it to out/<file> where <file> was specified in the payload metadata.

Note that on some systems this may need to be run as root to allow access to the serial port. It is generally preferable to add the user to the appropriate group with something similar to usermod -a -G uucp <username>.

Wire format

┌─────┬──────────┬─────────────┬──────┬─────┬───────┐
│ SOT │ metadata │ data_length │ data │ EXT │ crc32 │
└─────┴──────────┴─────────────┴──────┴─────┴───────┘

Here:

  • metadata is 32 bytes,
  • data_length is 8 bytes,
  • data is data_length bytes,
  • crc32 is 8 bytes,
  • SOT and EXT are the bytes x02, x03,
  • crc32 is the value of the CRC32 function acting on metadata || data.

Installation

Install in developer mode with make install_dev && source venv/bin/activate.

Install as user with make install.

Install from PyPI with pip install data-diode.

Install Bash completion with source bash_completion/diode.

Testing

Run make test.

For ad-hoc testing, socat -d -d pty,raw,echo=0 pty,raw,echo=0 can be useful to connect two virtual serial devices. If a physical serial device exists, connect with screen /dev/<device_name> [<baud_rate>] where <baud_rate> is likely 115200.

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

data-diode-0.0.4.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

data_diode-0.0.4-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file data-diode-0.0.4.tar.gz.

File metadata

  • Download URL: data-diode-0.0.4.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.1 CPython/3.11.7

File hashes

Hashes for data-diode-0.0.4.tar.gz
Algorithm Hash digest
SHA256 bbd9bf4f6c8a41dbcf95b8ccfb39a9ceb145d32108157027bcbb2315c144b36f
MD5 62e8aaf646220f2ed3fe70285bc64d42
BLAKE2b-256 eca2bf17ba687fe005aef8d950e1743f41840a74e064ad6d47d058c032b613ab

See more details on using hashes here.

File details

Details for the file data_diode-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: data_diode-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.1 CPython/3.11.7

File hashes

Hashes for data_diode-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ccc281bdb8f9ba709d4bf329aa219c919f28f7a55de98a6708cdaffe8dc27cd2
MD5 adf48242397ebf3e2b2d84cb9bda19d9
BLAKE2b-256 6a4529795b34230328165cd15e495fe86bed9fc4c1030f53027ad5b6bd5b4dd0

See more details on using hashes here.

Supported by

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