Johnathan Corgan
b80b3fbecf
Add YAML configuration system and nsec encoding
...
Configuration system:
- New config module with cascading file search
- Priority: ./fips.yaml > ~/.config/fips/ > ~/.fips.yaml > /etc/fips/
- Identity section with optional nsec (bech32 or hex format)
- Generate new keypair if nsec not configured
Identity module additions:
- encode_nsec() and decode_nsec() for NIP-19 bech32 format
- decode_secret() accepts both nsec and hex formats
- Identity::from_secret_str() constructor
Dependencies: serde, serde_yaml, dirs, hex
41 tests passing (20 identity + 15 config + 6 nsec)
2026-01-25 01:08:02 +00:00
Johnathan Corgan
ac2f6a75c8
Add npub encoding and PeerIdentity to identity module
...
- Add bech32 dependency for NIP-19 npub encoding
- Add encode_npub/decode_npub functions
- Add Identity::npub() method
- Add PeerIdentity type for remote peers (public key only)
- from_npub() constructor
- verify() for signature verification
- Export new types from lib.rs
- Update main.rs with verbose authentication demo
- 20 tests passing
2026-01-25 00:40:59 +00:00
Johnathan Corgan
db4989a790
Add Ipv6Addr conversion for FipsAddress
2026-01-25 00:03:19 +00:00
Johnathan Corgan
5c0e84f239
Add identity module with NodeId, FipsAddress, and auth challenge
...
Implements FIPS Identity System (Section 1 of design doc):
- NodeId: 32-byte SHA-256 hash of npub, with Ord for root election
- FipsAddress: 128-bit IPv6-compatible address (0xfd prefix)
- Identity: keypair holder with sign/verify methods
- AuthChallenge/AuthResponse: challenge-response authentication
All 11 tests passing.
2026-01-24 23:57:48 +00:00
Johnathan Corgan
6323c219b7
Initial FIPS project
2026-01-24 23:37:28 +00:00