Cybersecurity-Projects/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/audit
CarterPerez-dev fe5e9cd07b feat(audit): hash chain + HMAC ratchet + Merkle batches + Ed25519 signing
Three layers of integrity:
- Hash chain (SHA-256 chained) catches silent edits
- HMAC ratchet rotates keys every N entries with HKDF-style derivation
  and zeroizes old key bytes from memory
- Merkle batch sealing builds tree over content_hashes, signs root
  with Ed25519 (FFI to libcrypto EVP_PKEY_ED25519 directly since stdlib
  lacks the high-level OpenSSL::PKey wrapper)

AuditLog.append is mutex-guarded for serial writes; verify_chain detects
both single-row tampering and structural inconsistency. BatchSealer's
pack_message format (BE start_seq || BE end_seq || merkle_root) is shared
between signer and verifier so external auditors can validate offline.
2026-04-29 00:45:54 -04:00
..
.gitkeep feat(cre): source tree skeleton with empty module dirs and CI workflow 2026-04-28 23:54:59 -04:00
audit_log_spec.cr feat(audit): hash chain + HMAC ratchet + Merkle batches + Ed25519 signing 2026-04-29 00:45:54 -04:00
batch_sealer_spec.cr feat(audit): hash chain + HMAC ratchet + Merkle batches + Ed25519 signing 2026-04-29 00:45:54 -04:00
hash_chain_spec.cr feat(audit): hash chain + HMAC ratchet + Merkle batches + Ed25519 signing 2026-04-29 00:45:54 -04:00
hmac_ratchet_spec.cr feat(audit): hash chain + HMAC ratchet + Merkle batches + Ed25519 signing 2026-04-29 00:45:54 -04:00
merkle_spec.cr feat(audit): hash chain + HMAC ratchet + Merkle batches + Ed25519 signing 2026-04-29 00:45:54 -04:00
signing_spec.cr feat(audit): hash chain + HMAC ratchet + Merkle batches + Ed25519 signing 2026-04-29 00:45:54 -04:00