CloakHQ/CloakBrowser · critical · BinaryVerificationError

Signature-verified Pro SHA256SUMS has no entry for {tarball_

Error message

Signature-verified Pro SHA256SUMS has no entry for {tarball_name} — cannot confirm binary integrity.

What it means

The signature-verified Pro manifest has no checksum entry for this platform's archive name (get_archive_name()), so binary integrity cannot be confirmed; raised as BinaryVerificationError (tampering-class).

Source

Thrown at cloakbrowser/download.py:605

    # (re-raise) rather than transient failures (fall back to free).
    try:
        _verify_signature(manifest_bytes, sig_resp.content)
    except RuntimeError as exc:
        raise BinaryVerificationError(str(exc)) from exc
    manifest_text = manifest_bytes.decode("utf-8")

    # Version binding: same forced-downgrade defense as the official path.
    declared = _parse_manifest_version(manifest_text)
    if declared != version:
        raise BinaryVerificationError(
            f"Version mismatch in signed Pro SHA256SUMS: requested {version}, "
            f"manifest declares {declared or 'none'}. Refusing (possible downgrade)."
        )

    tarball_name = get_archive_name()
    expected = _parse_checksums(manifest_text).get(tarball_name)
    if expected is None:
        raise BinaryVerificationError(
            f"Signature-verified Pro SHA256SUMS has no entry for {tarball_name} — "
            f"cannot confirm binary integrity."
        )
    try:
        _verify_checksum(file_path, expected)
    except RuntimeError as exc:
        raise BinaryVerificationError(str(exc)) from exc


def _verify_download_checksum(file_path: Path, version: str | None = None) -> None:
    """Verify the downloaded archive's integrity and authenticity.

    Official path (cloakbrowser.dev / GitHub Releases): fetch SHA256SUMS plus
    its detached Ed25519 signature SHA256SUMS.sig, verify the signature against
    the pinned public keys FIRST, then verify the archive's SHA-256 against the
    now-authenticated manifest. Mandatory and non-bypassable — a same-origin
    manifest can no longer certify a tampered binary (#308).

View on GitHub (pinned to d6bad5de26)

Solutions

  1. Retry with caches cleared
  2. Verify the archive name matches your platform tag via get_platform_tag()
  3. Report upstream — likely a release packaging gap
Defensive patterns

Strategy: try-catch

Try / catch

from cloakbrowser.download import BinaryVerificationError
try:
    install()
except BinaryVerificationError as e:
    if "no entry for" in str(e):
        report_upstream(platform_tag(), e)  # packaging gap
    raise

Prevention

When it happens

Trigger: Pro download where _parse_checksums(manifest_text).get(tarball_name) is None — manifest lacks a line for the current platform's tarball.

Common situations: Platform tarball added but manifest not regenerated; manifest truncated by a proxy; new platform support gap in the release.

Related errors


AI-assisted analysis of CloakHQ/CloakBrowser@d6bad5de26 (2026-08-28). Data as JSON: /api/errors/4a1191875ab5046c. Report an issue: GitHub.