This is a demonstration program meant to nut out some details of how COSE and X25519 key exchange are supposed to work.
pycosepython-cryptography
It's a very crude script that allows two machines that share a possibly untrusted network (e.g. WiFi) to connect to each-other and establish a secure tunnel.
The assumption is both machines can see each-other via multicast DNS, and can send UDP traffic between each-other. If you're using a WiFi network that isolates its clients, you're out of luck.
This is the raw hexdump obtained from socat from two station running LinBPQ32 (i386 and armv5)
communicating via a virtual tunnelled serial link.
> 2024/05/05 16:16:28.000714544 length=20 from=0 to=19
c0 01 1e c0 c0 02 40 c0 c0 03 0a c0 c0 04 03 c0 c0 05 00 c0
< 2024/05/05 16:16:28.000716883 length=9 from=0 to=8
5e 43 c0 c0 5e 45 5e 40 c0
| CALLSIGNS ?= vk4msl ax4msl | |
| VARIANTS ?= empty cq-sstv morning-all afternoon-all evening-all 73-all 73-gotta-fly | |
| CALLSIGN ?= | |
| VARIANT ?= | |
| ifeq ($(VARIANT),) | |
| # VARIANT not set, iterate over VARIANTS | |
| .PHONY: all |
| #!/usr/bin/env python3 | |
| """ | |
| Dummy rigctld implementation for controlling a radio PTT signal via a GPIO | |
| pin. | |
| This is intended for devices like the NWDR UDRC-II and DRAWS boards, which | |
| attach to the top of a Raspberry Pi 2/3/4/5 single-board computer and provide | |
| control signals for PTT and COS along with an audio interface for digital mode | |
| operation. |
See https://cloudisland.nz/@xssfox/111729661516543468
Source for this spreadsheet is https://www.wia.org.au/members/bandplans/data/documents/Australian%20Band%20Plans%20200901.pdf
| #!/usr/bin/env python | |
| # vim: ai ts=4 sw=4 sts=4 expandtab fileencoding=utf-8 | |
| from mpd import MPDClient | |
| ## SETTINGS | |
| ## | |
| HOST = 'localhost' | |
| PORT = '6600' | |
| PASSWORD = False |
| # | |
| # Automatically generated file; DO NOT EDIT. | |
| # Linux/x86 6.5.7 Kernel Configuration | |
| # | |
| CONFIG_CC_VERSION_TEXT="gcc (Gentoo Hardened 13.2.1_p20230826 p7) 13.2.1 20230826" | |
| CONFIG_CC_IS_GCC=y | |
| CONFIG_GCC_VERSION=130201 | |
| CONFIG_CLANG_VERSION=0 | |
| CONFIG_AS_IS_GNU=y | |
| CONFIG_AS_VERSION=24000 |
| 2023-10-19 10:29:38,098 socatscraper.port14[socat-scrape.py: 50] INFO Decoded frame: | |
| [AX25SetAsyncBalancedModeFrame] | |
| header.destination = VK4MSL-4* | |
| header.source = VK4MSL-5 | |
| header.repeaters = | |
| header.cr = True | |
| header.src_cr = False | |
| body.control = 63 (0x3f) | |
| body.pf = True (0x1) | |
| body.modifier = 47 (0x2f) |