"""Shared validation and insertion helpers. No external Python dependencies.""" import hashlib import json import re CVE = re.compile(r'^CVE-\d{4}-\d{4,}$', re.I) OTHER_PREFIXES = ('GHSA-', 'OSV-', 'PYSEC-', 'RUSTSEC-', 'GO-', 'DSA-', 'USN-') def canonical(obj): return json.dumps(obj, ensure_ascii=False, sort_keys=True, separators=(',', ':')) def sha(value): return hashlib.sha256(value.encode('utf-8')).hexdigest()[:32] def is_vulnerability_id(value): return isinstance(value, str) and (bool(CVE.fullmatch(value)) or value.startswith(OTHER_PREFIXES)) def valid_date(value): return value if isinstance(value, str) and value else None def upsert_vuln(db, vid, published=None, modified=None, state=None, summary=None): if not is_vulnerability_id(vid): return False db.execute('''INSERT INTO vulnerabilities(id,published,modified,state,summary) VALUES(?,?,?,?,?) ON CONFLICT(id) DO UPDATE SET published=COALESCE(excluded.published,vulnerabilities.published), modified=COALESCE(excluded.modified,vulnerabilities.modified), state=COALESCE(excluded.state,vulnerabilities.state), summary=COALESCE(excluded.summary,vulnerabilities.summary)''', (vid, published, modified, state, summary[:500] if isinstance(summary, str) else None)) return True