zenith-backend / scripts /rotate_audit_key.py
teoat
deploy: sync from main Sun Jan 11 18:43:53 WIT 2026
4a2ab42
#!/usr/bin/env python3
"""Rotate audit signing key safely.
Creates a new keypair and archives the previous keys with a timestamped suffix.
This is a convenience script; rotate keys carefully and distribute public key to verifiers.
"""
import datetime
from pathlib import Path
KEY_DIR = Path.home() / ".Zenith"
PRIV = KEY_DIR / "audit_private.key"
PUB = KEY_DIR / "audit_public.key"
def archive(path: Path):
if path.exists():
ts = datetime.datetime.utcnow().strftime("%Y%m%d%H%M%S")
path.rename(path.with_name(path.name + f".{ts}.bak"))
def main():
from generate_audit_keys import main as gen_main
archive(PRIV)
archive(PUB)
gen_main()
print("✅ Rotation complete. Verify public key distribution to verifiers.")
if __name__ == "__main__":
main()