Commit graph

2 commits

Author SHA1 Message Date
Zachery Aaron Shores-Chmielewski
cc39f8a0a8 Initital Sender state machine logic implemented
Implemented and tested the state machine model for the `Sender`. Tested against the rust bindings for libsodium using
the `crypto_box` api.
2026-01-19 11:09:17 +07:00
Zachery Aaron Shores-Chmielewski
f0f33e0934 Implement sender client state machine with comprehensive tests
- Add SenderClient state machine with states: Idle, Ready, Composing, Encrypting, Submitted, Error
- Implement all state transitions according to specification
- Use sodiumoxide for sealed box encryption
- Add validation for sender name (max 200 chars) and message body (max 10,000 chars)
- Implement complete test suite covering:
  - State transitions and invalid transitions
  - Input validation (empty, max length, over max)
  - Encryption (ciphertext randomness, different messages)
  - Unicode and special characters support
  - Multiple messages in sequence
  - Error handling and recovery
2026-01-19 08:49:30 +07:00