{"id":15718634,"url":"https://github.com/ali-raheem/macpi","last_synced_at":"2026-04-27T12:01:46.847Z","repository":{"id":138314697,"uuid":"223584847","full_name":"ali-raheem/MacPi","owner":"ali-raheem","description":"🛡️ Create macsec encrypted ethernet links automatically, transparently and securely with minimal interaction","archived":false,"fork":false,"pushed_at":"2019-12-02T20:44:39.000Z","size":41,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-30T22:29:17.198Z","etag":null,"topics":["bump-in-the-wire","encryption","ethernet","macsec","networking","raspberry-pi","security"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ali-raheem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-23T12:26:51.000Z","updated_at":"2024-11-08T18:13:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"1cb1cdac-d7a8-4c6f-9dcb-4edad11cc184","html_url":"https://github.com/ali-raheem/MacPi","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ali-raheem/MacPi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ali-raheem%2FMacPi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ali-raheem%2FMacPi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ali-raheem%2FMacPi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ali-raheem%2FMacPi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ali-raheem","download_url":"https://codeload.github.com/ali-raheem/MacPi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ali-raheem%2FMacPi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32335297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bump-in-the-wire","encryption","ethernet","macsec","networking","raspberry-pi","security"],"created_at":"2024-10-03T21:53:34.531Z","updated_at":"2026-04-27T12:01:46.829Z","avatar_url":"https://github.com/ali-raheem.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MacPi\nCreate macsec encrypted ethernet links automatically and transparently with minimal interaction. Intended to run between two Raspberry Pi's but should work on any OS which supports MACsec.\n\nAiming to be an opensource, cheap hardware, high security, easy to use bump in the wire solution.\n\n## Running\n\n### Setup\n1. Clone this repository\n2. Start master instance\n3. Start slave instance\n4. Confirm hash match on both devices\n\n```\ngit clone git@github.com:ali-raheem/PiSec.git --depth=1\nmaster# bash sync.sh -m\nslave# bash sync.sh\n```\nIf you don't want to run the script in a root shell use ```sudo```.\n\nYou need to confirm the public key hashes on both devices with ```y``` when promited.\n\nRunning the script again will prompt you to reuse the last config or start fresh. Start fresh if there was an error previously.\n\nThey link will then automatically be set up.\n\n### After reboot\n\nIf you want to re-establish the link without user input or changing the keys then just run `scripts/macsec.sh` on startup.\n\n## Dependencies\n\n* MACsec (in Linux kernel \u003e= 4.6)\n* Flask (and Python3)\n* openssl\n* iproute2\n\n## Todo\n\n* use dhcpd?\n* use iptables to forward/NAT traffic to allow bridging?\n* IPv6?\n* Use SPI screen and buttons on raspberry pi\n\n## Notes\n\n* For raspberry pi (atleast) you will need to compile the macsec module. It's [easy](https://www.raspberrypi.org/documentation/linux/kernel/configuring.md), just make sure to enable macsec as a module in .config (uncomment `macsec m`).\n* There will be a performance hit, on my ancient laptop 950 mbps without macsec 850 mbps with macsec. On RPi1 60 mbps to 12 mbps testing with iperf3.\n* Currently using brainpoolP512t1, maybe there is something [better](https://safecurves.cr.yp.to/)? Should be hashing params file? Or just using a named curve?\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fali-raheem%2Fmacpi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fali-raheem%2Fmacpi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fali-raheem%2Fmacpi/lists"}