from __future__ import annotations import base64 import hashlib def verify_pkce_s256(code_verifier: str, code_challenge: str) -> bool: digest = hashlib.sha256(code_verifier.encode("ascii")).digest() computed = base64.urlsafe_b64encode(digest).rstrip(b"=").decode("ascii") return computed == code_challenge.rstrip("=")