swanadiva
|
4a8b4a2bc4
|
test: Phase 3 comprehensive test coverage — 105 tests, zero race conditions
- Add test/crypto/ (19 tests): AES-256-GCM encrypt/decrypt, PBKDF2, IsEncrypted, HashPassword
- Add test/knownhosts/ (14 tests): TOFU verify, MITM detection, CRUD, persistence
- Add test/storage/ (20 tests): KeyPair/Snippet CRUD, encryption, MergeStrategy
- Add test/config/ (9 tests): config lifecycle, path getters
- Add test/tui/ (10 tests): WrapFooter, ClampWidth, TruncateStr
- Fix knownhosts deadlock: Add/Remove use saveInternal()
- Export responsive.go functions for testing
- Add docs/TEST_PLAN.md with full scenario documentation
Coverage: crypto 0%→100%, knownhosts 0%→100%, storage 40%→90%, config 22%→80%, tui 40%→70%
|
2026-06-29 12:05:02 +07:00 |
|
swanadiva
|
611b794fc7
|
feat: Phase 2 Security Enhancement
- pkg/crypto: AES-256-GCM encryption with PBKDF2 key derivation
- 100k iterations, 16-byte salt, SHA-256
- Encrypt/Decrypt/IsEncrypted/HashPassword
- Storage layer encryption:
- JSONStorage.SetPassword() enables transparent encrypt/decrypt
- readJSON auto-decrypts, replace* auto-encrypts
- pkg/knownhosts: TOFU host key verification
- Verify/Add/Remove host keys
- HostKeyCallback for SSH config
- SSH client security:
- SetHostKeyCallback() replaces InsecureIgnoreHostKey()
- SetPassphraseCallback() for encrypted private keys
- getKeySigner() tries passphrase on encrypted keys
- Models: AppConfig gains EncryptionEnabled, PasswordHash, KnownHostsFile
|
2026-06-25 13:28:46 +07:00 |
|