puncture/README.md

1.3 KiB

Puncture (Go)

Go implementation of a puncturable-key system (GGM tree) with:

  • primary macOS app/server for key derivation, puncturing, providers, and asset encryption/decryption
  • iOS emergency companion app for remote provider-level puncture

Current architecture

  • goapp/cmd/server: headless web server (:9122)
  • goapp/cmd/desktop: macOS desktop app (embedded webview + local server)
  • goapp/internal/crypto: GGM puncturable key manager
  • goapp/internal/app: provider/key/asset state machine
  • goapp/internal/server: HTTP API + web UI
  • goapp/ios/EmergencyPuncture: native iOS app

Run primary server

cd goapp
go run ./cmd/server --host 0.0.0.0 --port 9122

Open http://127.0.0.1:9122.

Build macOS app + installer

cd goapp
./packaging/macos/build_dmg.sh

Artifacts:

  • goapp/dist/Puncture.app
  • goapp/dist/Puncture.dmg

Persistence

Frontier/puncture/providers/assets are persisted locally and survive restarts. Default desktop paths:

  • assets: ~/Library/Application Support/PunctureGo/assets
  • state: ~/Library/Application Support/PunctureGo/state.json

iOS companion

  • Xcode project: goapp/ios/EmergencyPuncture/EmergencyPuncture.xcodeproj
  • iPhone install guide: goapp/ios/INSTALL_IPHONE.md

Legacy Python line

The previous Python implementation is preserved in branch python-legacy.