import hashlib
import hmac
import time


def verify_designgen_webhook(raw_body: bytes, signature_header: str, secret: str) -> bool:
    """Verify the raw request bytes before decoding JSON."""
    fields = dict(part.strip().split("=", 1) for part in signature_header.split(","))
    if "t" not in fields or "v1" not in fields:
        return False
    if abs(time.time() - int(fields["t"])) > 300:
        return False

    signed_payload = fields["t"].encode() + b"." + raw_body
    expected = hmac.new(secret.encode(), signed_payload, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, fields["v1"])
