127 lines
3.2 KiB
Markdown
127 lines
3.2 KiB
Markdown
# Reticulum-Go
|
|
|
|
[Reticulum Network](https://github.com/markqvist/Reticulum) implementation in Go
|
|
|
|
Aiming for full spec compatibility with the Python version 0.8.8+.
|
|
|
|
## To-Do List
|
|
|
|
### Core Components (In Progress)
|
|
- [x] Basic Configuration System
|
|
- [x] Basic config structure
|
|
- [x] Default settings
|
|
- [x] Config file loading/saving
|
|
- [x] Path management
|
|
|
|
- [x] Constants Definition (Testing required)
|
|
- [x] Packet constants
|
|
- [x] MTU constants
|
|
- [x] Header types
|
|
- [x] Additional protocol constants
|
|
|
|
- [x] Identity Management (Testing required)
|
|
- [x] Identity creation
|
|
- [x] Key pair generation
|
|
- [x] Identity storage/recall
|
|
- [x] Public key handling
|
|
- [x] Signature verification
|
|
- [x] Hash functions
|
|
|
|
- [x] Cryptographic Primitives (Testing required)
|
|
- [x] Ed25519
|
|
- [x] Curve25519
|
|
- [x] AES-GCM
|
|
- [x] SHA-256
|
|
- [x] HKDF
|
|
- [x] Secure random number generation
|
|
- [x] HMAC
|
|
|
|
- [x] Packet Handling (In Progress)
|
|
- [x] Packet creation
|
|
- [x] Packet validation
|
|
- [x] Basic proof system
|
|
- [x] Packet encryption
|
|
- [x] Signature verification
|
|
- [ ] Testing of packet encrypt/decrypt/sign/proof
|
|
|
|
- [x] Transport Layer (In Progress)
|
|
- [x] Path management
|
|
- [x] Basic packet routing
|
|
- [x] Announce handling
|
|
- [x] Link management
|
|
- [x] Resource cleanup
|
|
- [x] Network layer integration
|
|
- [ ] Testing announce from go client to python client
|
|
- [ ] Testing path finding and caching
|
|
|
|
### Interface Implementation (In Progress)
|
|
- [x] UDP Interface
|
|
- [x] TCP Interface
|
|
- [x] Auto Interface
|
|
- [ ] Local Interface (In Progress)
|
|
- [ ] I2P Interface
|
|
- [ ] Pipe Interface
|
|
- [ ] RNode Interface
|
|
- [ ] RNode Multiinterface
|
|
- [ ] Serial Interface
|
|
- [ ] AX25KISS Interface
|
|
- [ ] Interface Discovery
|
|
- [ ] Interface Modes
|
|
- [ ] Full mode
|
|
- [ ] Gateway mode
|
|
- [ ] Access point mode
|
|
- [ ] Roaming mode
|
|
- [ ] Boundary mode
|
|
|
|
### Destination System (Testing required)
|
|
- [x] Destination creation
|
|
- [x] Destination types (IN/OUT)
|
|
- [x] Destination aspects
|
|
- [x] Announce implementation
|
|
- [x] Ratchet support
|
|
- [x] Request handlers
|
|
|
|
### Link System (Testing required)
|
|
- [x] Link establishment
|
|
- [x] Link teardown
|
|
- [x] Basic packet transfer
|
|
- [x] Encryption/Decryption
|
|
- [x] Identity verification
|
|
- [x] Request/Response handling
|
|
- [x] Session key management
|
|
- [x] Link state tracking
|
|
|
|
### Resource System (Testing required)
|
|
- [x] Resource creation
|
|
- [x] Resource transfer
|
|
- [x] Compression
|
|
- [x] Progress tracking
|
|
- [x] Segmentation
|
|
- [x] Cleanup routines
|
|
|
|
### Compatibility
|
|
- [ ] RNS Utilities Compatibility
|
|
|
|
### Testing & Validation
|
|
- [ ] Unit tests for all components (Link, Resource, Destination, Identity, Packet, Transport, Interface)
|
|
- [ ] Integration tests
|
|
- [ ] Cross-client compatibility tests
|
|
- [ ] Performance benchmarks
|
|
- [ ] Security auditing (When Reticulum is 1.0 / stable)
|
|
|
|
### Documentation
|
|
- [ ] API documentation
|
|
- [ ] Usage examples
|
|
|
|
### Cleanup
|
|
- [ ] Seperate Cryptography from identity.go to their own files.
|
|
- [ ] Move constants to their own files.
|
|
|
|
### Other
|
|
- [ ] Rate limiting
|
|
- [ ] QoS implementation?
|
|
|
|
### Ivans Future Addon Packages
|
|
- [ ] Post-quantum cryptographic primitives (separate package)
|
|
- [ ] Hardware security module (HSM) support (separate package)
|
|
- [ ] Encrypted storage for identities (separate package) |