From f604d1a3c88e3bd1c616e3a0c2276bfa115d1d06 Mon Sep 17 00:00:00 2001 From: Ivan Date: Fri, 18 Apr 2025 22:41:54 -0500 Subject: [PATCH] create TODO --- TODO.md | 167 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 TODO.md diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..dcaa732 --- /dev/null +++ b/TODO.md @@ -0,0 +1,167 @@ +### Core Components (In Progress) + +Last Updated: 2025-04-18 + +- [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-128-CBC + - [ ] AES-256-CBC + - [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/decryption + - [x] Signature verification + - [x] Announce packet structure + - [ ] Testing of packet encrypt/decrypt/sign/proof + - [ ] Cross-client packet compatibility + +- [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 + - [x] Basic announce implementation + - [ ] Testing announce from go client to python client + - [ ] Testing path finding and caching + - [ ] Announce propagation optimization + +- [x] Channel System (Testing Required) + - [x] Channel creation and management + - [x] Message handling + - [x] Channel encryption + - [x] Channel authentication + - [x] Channel callbacks + - [x] Integration with Buffer system + - [ ] Testing with real network conditions + - [ ] Cross-client compatibility testing + +- [x] Buffer System (Testing Required) + - [x] Raw channel reader/writer + - [x] Buffered stream implementation + - [x] Compression support + - [ ] Testing with Channel system + - [ ] Cross-client compatibility testing + +- [x] Resolver System (Testing Required) + - [x] Name resolution + - [x] Cache management + - [x] Announce handling + - [x] Path resolution + - [x] Integration with Transport layer + - [ ] Testing with live network + - [ ] Cross-client compatibility testing + +### 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 + +- [ ] Hot reloading interfaces + +### Destination System (Testing required) +- [x] Destination creation +- [x] Destination types (IN/OUT) +- [x] Destination aspects +- [ ] Announce implementation (Fixing) +- [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. +- [ ] Reticulum config. + + +### Testing & Validation (Priority) +- [ ] Unit tests for all components + - [ ] Identity tests + - [ ] Packet tests + - [ ] Transport tests + - [ ] Interface tests + - [ ] Announce tests + - [ ] Channel tests + - [ ] Buffer tests + - [ ] Resolver tests + - [ ] Link tests + - [ ] Resource tests +- [ ] Integration tests + - [ ] Go client to Go client + - [ ] Go client to Python client + - [ ] Interface compatibility + - [ ] Path finding and resolution + - [ ] Channel system end-to-end + - [ ] Buffer system performance +- [ ] Cross-client compatibility tests +- [ ] Performance benchmarks +- [ ] Security auditing (When Reticulum is 1.0 / stable) + +### Documentation +- [ ] API documentation +- [ ] Usage examples + +### Cleanup +- [ ] Separate Cryptography from identity.go to their own files +- [ ] Move constants to their own files +- [ ] Remove default community interfaces in default config creation after testing +- [ ] Optimize announce packet creation and caching +- [ ] Improve debug logging system \ No newline at end of file