Spaces:
Paused
Paused
| import os | |
| import sys | |
| sys.path.insert(0, os.path.abspath("backend")) | |
| import sys | |
| from services.audit_verifier import _verify_hmac, verify_entry | |
| from core.database import AuditLog, create_engine_and_session, utc_now | |
| sys.path.insert(0, os.path.abspath("../tests")) | |
| from test_config import setup_test_environment | |
| setup_test_environment() | |
| engine, SessionLocal = create_engine_and_session() | |
| session = SessionLocal() | |
| try: | |
| session.query(AuditLog).delete() | |
| session.commit() | |
| entry = AuditLog( | |
| id="a1", action="test", user_id="u1", timestamp=utc_now(), signature="" | |
| ) | |
| import hashlib | |
| import hmac | |
| payload = f"{entry.id}|{entry.action}|{entry.user_id}|{entry.timestamp}".encode() | |
| sig = hmac.new( | |
| os.environ["AUTH_ENCRYPTION_KEY"].encode("utf-8"), payload, hashlib.sha256 | |
| ).hexdigest() | |
| entry.signature = sig | |
| session.add(entry) | |
| session.commit() | |
| print("entry.signature:", entry.signature) | |
| expected = hmac.new( | |
| os.environ["AUTH_ENCRYPTION_KEY"].encode("utf-8"), payload, hashlib.sha256 | |
| ).hexdigest() | |
| print("expected:", expected) | |
| print("expected==entry.signature", expected == entry.signature) | |
| ok = verify_entry(entry) | |
| print("verify_entry result:", ok) | |
| # Direct test of internal _verify_hmac | |
| ok_hmac = _verify_hmac(os.environ["AUTH_ENCRYPTION_KEY"], entry.signature, payload) | |
| print("_verify_hmac result:", ok_hmac) | |
| finally: | |
| session.close() | |