{"id":48833980,"url":"https://github.com/seigr-lab/seigrtoolsettransmissions","last_synced_at":"2026-04-14T22:04:56.792Z","repository":{"id":324362027,"uuid":"1096297199","full_name":"Seigr-lab/SeigrToolsetTransmissions","owner":"Seigr-lab","description":"Binary encrypted streaming protocol using STC probabilistic cryptography.","archived":false,"fork":false,"pushed_at":"2025-12-15T11:15:41.000Z","size":670,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-30T01:21:25.540Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Seigr-lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/security/SECURITY_AUDIT_SUMMARY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["Seigr-lab"],"paypal.me":["https://www.paypal.com/paypalme/sergism"]}},"created_at":"2025-11-14T08:11:56.000Z","updated_at":"2025-12-15T11:15:45.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Seigr-lab/SeigrToolsetTransmissions","commit_stats":null,"previous_names":["seigr-lab/seigrtoolsettransmissions"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Seigr-lab/SeigrToolsetTransmissions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seigr-lab%2FSeigrToolsetTransmissions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seigr-lab%2FSeigrToolsetTransmissions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seigr-lab%2FSeigrToolsetTransmissions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seigr-lab%2FSeigrToolsetTransmissions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Seigr-lab","download_url":"https://codeload.github.com/Seigr-lab/SeigrToolsetTransmissions/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seigr-lab%2FSeigrToolsetTransmissions/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31817132,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"ssl_error","status_checked_at":"2026-04-14T18:05:01.765Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-04-14T22:04:11.269Z","updated_at":"2026-04-14T22:04:56.765Z","avatar_url":"https://github.com/Seigr-lab.png","language":"Python","funding_links":["https://github.com/sponsors/Seigr-lab","https://www.paypal.com/paypalme/sergism"],"categories":[],"sub_categories":[],"readme":"# Seigr Toolset Transmissions (STT)\n\n[![Sponsor Seigr-lab](https://img.shields.io/badge/Sponsor-Seigr--lab-forestgreen?style=flat\u0026logo=github)](https://github.com/sponsors/Seigr-lab)\n[![License](https://img.shields.io/badge/license-ANTI--CAPITALIST-red)](LICENSE)\n[![Python](https://img.shields.io/badge/python-3.9+-green)](https://python.org)\n[![Version](https://img.shields.io/badge/version-0.2.0a0-blue)]()\n[![Coverage](https://img.shields.io/badge/coverage-93.01%25-brightgreen)]()\n\n\u003e **Secure binary transport that doesn't care what you're sending.**\n\nSTT creates **opaque encrypted packets** that tunnel through any network (UDP, WebSocket, HTTPS) and can only be decrypted by authorized participants. No assumptions about your data - you could be streaming video, sending sensor readings, transferring files, or running your own custom protocol.\n\n---\n\n## 📖 Quick Links\n\n- **New to STT?** → [What is STT?](docs/user_manual/01_what_is_stt.md) - Start here\n- **Want to use it?** → [Getting Started](docs/user_manual/09_getting_started.md) - Installation \u0026 first program  \n- **Need API docs?** → [API Reference](docs/api/API.md) - Complete Python API\n- **Curious how it works?** → [Architecture](docs/design/ARCHITECTURE.md) - Design \u0026 protocol details\n\n---\n\n## Why STT?\n\n**Problem**: Most protocols assume what you're sending (HTTP = web pages, MQTT = IoT messages, WebRTC = video calls). But what if you need secure binary transport without those assumptions?\n\n**Solution**: STT provides **encrypted binary packets** that:\n\n✅ **Tunnel through any transport** (UDP if available, WebSocket/HTTPS if firewalled)  \n✅ **Only decrypt for authorized peers** (pre-shared seed authentication)  \n✅ **Work for any application** (you define what the bytes mean)  \n✅ **Are opaque to intermediaries** (network sees encrypted binary blobs)  \n\n**Use STT for**: Video streaming, sensor networks, file transfer, messaging, custom protocols - anything that moves bytes securely.\n\n---\n\n## Status\n\n**Version**: 0.2.0a0 (unreleased)  \n**Test Coverage**: 93.01% (2803 statements)  \n**Status**: Alpha - core functionality implemented and tested\n\n**What works**: Handshake, sessions, streams, frames, UDP/WebSocket transport, encryption, storage  \n**Known stubs/incomplete**:\n- `ProbabilisticStream._try_send_segment()` - simulates network delivery (stub for integration)\n- `RelayServer._handle_forward()` - counts forwarded frames but doesn't implement actual forwarding\n- `core/transport.py UDPTransport` - placeholder class (working implementation is in `transport/udp.py`)\n\n**What's next**: Complete stub implementations, production hardening, additional transports\n\n---\n\n## Quick Example\n\n```python\nimport asyncio\nfrom seigr_toolset_transmissions import STTNode\n\nasync def main():\n    # Create node with pre-shared seeds\n    node = STTNode(\n        node_seed=b\"my_node_secret_32bytes_minimum!\",\n        shared_seed=b\"shared_secret_32bytes_minimum!\",\n        host=\"127.0.0.1\",  # Default; use \"0.0.0.0\" to accept external connections\n        port=8080\n    )\n    \n    # Start listening\n    await node.start(server_mode=True)\n    \n    # Receive packets from any authorized peer\n    async for packet in node.receive():\n        print(f\"Received {len(packet.data)} bytes\")\n        # packet.data contains decrypted bytes\n        # Only peers with matching shared_seed can send to us\n\nasyncio.run(main())\n```\n\n**That's it.** Encrypted packets tunnel through your network automatically.\n\n👉 **Learn more**: [Getting Started Guide](docs/user_manual/09_getting_started.md)\n\n---\n\n## How It Works\n\n**1. Pre-Shared Seeds**: Both peers must have matching secrets (QR code, secure channel, etc.)  \n**2. Handshake**: 4-message mutual authentication using STC encryption  \n**3. Encrypted Packets**: All data encrypted before sending - opaque to network  \n**4. Transport Agnostic**: Packets travel over UDP, WebSocket, or any byte transport  \n\n```\n┌─────────────┐                    ┌─────────────┐\n│   Node A    │ ──[encrypted]────→ │   Node B    │\n│ (shared_seed│    UDP/WebSocket   │ shared_seed)│\n└─────────────┘ ←─[encrypted]───── └─────────────┘\n                Only A \u0026 B can decrypt\n                Network sees random bytes\n```\n\n👉 **Deep dive**: [Architecture](docs/design/ARCHITECTURE.md) | [Handshake Process](docs/user_manual/05_handshake_process.md) | [Security Model](docs/user_manual/13_security_model.md)\n\n---\n\n## Installation\n\n**Requirements**: Python 3.9+\n\n```bash\n# From source (not yet on PyPI)\ngit clone https://github.com/Seigr-lab/SeigrToolsetTransmissions.git\ncd SeigrToolsetTransmissions\npip install -e .\n```\n\n**Dependencies**:\n\n- `seigr-toolset-crypto` \u003e= 0.4.0 (STC encryption)\n\n👉 **Full guide**: [Installation \u0026 Setup](docs/user_manual/09_getting_started.md)\n\n---\n\n## 📚 Documentation\n\n### **User Manual** (Learn STT from scratch)\n\n**Getting Started**:\n\n- [Chapter 1: What is STT?](docs/user_manual/01_what_is_stt.md) - Overview and use cases\n- [Chapter 2: Core Concepts](docs/user_manual/02_core_concepts.md) - Nodes, sessions, streams\n- [Chapter 9: Getting Started](docs/user_manual/09_getting_started.md) - Installation and first program\n\n**Understanding How It Works**:\n\n- [Chapter 3: Binary Protocols](docs/user_manual/03_binary_protocols.md) - Why binary?\n- [Chapter 4: Encryption](docs/user_manual/04_understanding_encryption.md) - STC and pre-shared seeds\n- [Chapter 5: Handshake](docs/user_manual/05_handshake_process.md) - 4-message authentication\n- [Chapter 6: Sessions](docs/user_manual/06_sessions_and_connections.md) - Session lifecycle\n- [Chapter 7: Streams](docs/user_manual/07_streams_and_multiplexing.md) - Multiplexing explained\n- [Chapter 8: Transport](docs/user_manual/08_transport_layer.md) - UDP vs WebSocket\n\n**Using STT**:\n\n- [Chapter 10: Common Patterns](docs/user_manual/10_common_usage_patterns.md) - Real-world examples\n- [Chapter 11: Error Handling](docs/user_manual/11_error_handling.md) - Troubleshooting\n- [Chapter 12: Performance](docs/user_manual/12_performance_and_optimization.md) - Optimization\n\n**Security \u0026 Design**:\n\n- [Chapter 13: Security Model](docs/user_manual/13_security_model.md) - Threat model\n- [Chapter 14: Comparisons](docs/user_manual/14_comparisons.md) - STT vs HTTP/gRPC/WebRTC/QUIC\n- [Chapter 15: Design Decisions](docs/user_manual/15_design_decisions.md) - Why STT works this way\n\n**Reference**:\n\n- [Glossary](docs/user_manual/appendix_a_glossary.md) - All terms defined\n- [Frame Format](docs/user_manual/appendix_b_frame_format.md) - Binary format spec\n- [Configuration](docs/user_manual/appendix_c_configuration.md) - All settings\n- [Error Codes](docs/user_manual/appendix_d_error_codes.md) - Complete error reference\n\n### **API \u0026 Technical Docs**\n\n- **[API Reference](docs/api/API.md)** - Complete Python API for all components\n- **[Architecture](docs/design/ARCHITECTURE.md)** - Design philosophy and protocol stack\n- **[STC Dependency](docs/api/STC_DEPENDENCY_REFERENCE.md)** - External crypto library docs\n\n### **Development**\n\n- [Environment Setup](docs/development/ENVIRONMENT_SETUP.md) - Dev environment\n- [CHANGELOG](docs/releases/CHANGELOG.md) - Version history\n\n---\n\n## Components\n\nSTT is built from these core components (all with dedicated documentation):\n\n- **[STTNode](docs/user_manual/02_core_concepts.md#sttnode)** - Main runtime (85.56% tested)\n- **[Handshake](docs/user_manual/05_handshake_process.md)** - Mutual authentication (87.93% tested)\n- **[Sessions](docs/user_manual/06_sessions_and_connections.md)** - Connection management (100% tested)\n- **[Streams](docs/user_manual/07_streams_and_multiplexing.md)** - Multiplexed channels (99.24% tested)\n- **[Frames](docs/user_manual/appendix_b_frame_format.md)** - Binary protocol (98.26% tested)\n- **[Transport](docs/user_manual/08_transport_layer.md)** - UDP/WebSocket (84-90% tested)\n- **[Chamber](docs/api/API.md#storage)** - Encrypted storage (96.97% tested)\n- **[STCWrapper](docs/api/STC_DEPENDENCY_REFERENCE.md)** - Cryptography (98.78% tested)\n\n👉 **Full component docs**: [API Reference](docs/api/API.md)\n\n---\n\n## Testing\n\n```bash\npytest tests/ -v --cov\n```\n\n**Coverage**: 93.01% (2803 statements)  \n**Test suite**: 200+ tests covering all core components\n\n---\n\n## Security\n\nSTT has undergone comprehensive security auditing:\n\n- ✅ **Bandit** static analysis: 0 issues (6679 lines of code scanned)\n- ✅ **Safety** dependency check: 0 vulnerabilities\n- ✅ **pip-audit** OSV database: 0 vulnerabilities in STT code\n\nAll identified security issues have been fixed, including:\n\n- SHA1 usage properly marked as non-cryptographic (WebSocket handshake only)\n- Default bind addresses set to localhost (127.0.0.1) for security\n- Pickle replaced with JSON for storage serialization\n- Secrets module used for cryptographic randomness\n- Comprehensive error logging for debugging\n\n👉 **Full security audit**: [Security Audit Summary](docs/security/SECURITY_AUDIT_SUMMARY.md)\n\n---\n\n## Contributing\n\nContributions welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch\n3. Add tests for new functionality  \n4. Ensure all tests pass\n5. Submit a pull request\n\n**Development**: See [Environment Setup](docs/development/ENVIRONMENT_SETUP.md)\n\n---\n\n## License\n\n**ANTI-CAPITALIST SOFTWARE LICENSE (v 1.4)**\n\nSee [LICENSE](LICENSE) for full details.\n\n---\n\n## Support \u0026 Community\n\n- **Issues**: [GitHub Issues](https://github.com/Seigr-lab/SeigrToolsetTransmissions/issues)\n- **Sponsor**: [GitHub Sponsors](https://github.com/sponsors/Seigr-lab)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseigr-lab%2Fseigrtoolsettransmissions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseigr-lab%2Fseigrtoolsettransmissions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseigr-lab%2Fseigrtoolsettransmissions/lists"}