{
  "lab": "password-strength",
  "network": "none",
  "storage": "none",
  "input": "A password you type (use one similar to yours). It is checked in the browser tab, never stored or sent, and never included in the copied report.",
  "statement": "This page sends nothing anywhere. If an AI agent or browser extension is reading your screen, it can see what's shown here.",
  "enforcedBy": "content-security-policy: connect-src 'self' (the browser blocks any request to another site)",
  "check": [
    "curl -sI https://lab.hopperlabs.ai/labs/password-strength/run | grep -i content-security-policy",
    "Compare each file below with its sha256, and read the source at the commit given.",
    "Once the page has loaded, turn off Wi-Fi: the lab keeps working."
  ],
  "source": {
    "repository": "hopperlabs-ai-dev/hopper-lab",
    "commit": "fcb56962e61de9ef456ebdea32d13ab1fc56e882",
    "files": [
      {
        "path": "/password-strength/app.js",
        "sha256": "bd2f3659e7c665bf6b3b0c04b0a68a92d8116870c6ebee28c7e5bc38e8c06b47"
      },
      {
        "path": "/password-strength/checker-worker.js",
        "sha256": "9bb03a360c1eba3c6f911861dd137a52f7cc641be9109f86cd2f8c62adedaf52"
      },
      {
        "path": "/password-strength/chrome.css",
        "sha256": "abeaecb0b75fd9f80d6380f840ddadf1a76a1eaf9cd5bde90c9e69d785a73bb3"
      },
      {
        "path": "/password-strength/index.html",
        "sha256": "6bb092f3cd867d50f6cabb6772d002487603b8c58c8edf1ba54df583bda9ef40"
      },
      {
        "path": "/password-strength/lab-kit.js",
        "sha256": "d6dd870a1b38a807637070750eb57d7d31c57b25541bd2a7f8dbab093e261407"
      },
      {
        "path": "/password-strength/lab.css",
        "sha256": "2d457c2528f2f55b661b0a01c5ed72f960f89a6106422f8936e35a5ffd362e9d"
      },
      {
        "path": "/password-strength/strength.js",
        "sha256": "753173f505d0b9cab383d9eb5d4bb7cc65dc9e9b7874c6cabbce4743cffa9d65"
      },
      {
        "path": "/password-strength/vendor/zxcvbn-ts/LICENSE",
        "sha256": "c376f457b9569b2a88506f78fe420511a3ca3be5819b69dda405b988b784735f"
      },
      {
        "path": "/password-strength/vendor/zxcvbn-ts/LICENSE-dictionary-compression",
        "sha256": "b8b286e29287a9f81e8dd3add46bb9b057189c3db14e3b520166cf1a2ab21503"
      },
      {
        "path": "/password-strength/vendor/zxcvbn-ts/LICENSE-fastest-levenshtein.md",
        "sha256": "b8baf91be313643f3e87a01da77704b68e12795184a62e51e537a5a43c2932f3"
      },
      {
        "path": "/password-strength/vendor/zxcvbn-ts/LICENSE-language-common.txt",
        "sha256": "c376f457b9569b2a88506f78fe420511a3ca3be5819b69dda405b988b784735f"
      },
      {
        "path": "/password-strength/vendor/zxcvbn-ts/LICENSE-language-en-word-lists.md",
        "sha256": "b357a92e825da8e207985af06d57a4f563bf7031c3bfff6e691b79f528612135"
      },
      {
        "path": "/password-strength/vendor/zxcvbn-ts/LICENSE-language-en.txt",
        "sha256": "c376f457b9569b2a88506f78fe420511a3ca3be5819b69dda405b988b784735f"
      },
      {
        "path": "/password-strength/vendor/zxcvbn-ts/SOURCE.txt",
        "sha256": "31fbb1214a164671a07c7afb141ab61df13d8596700509d8bb41fd8e754d3296"
      },
      {
        "path": "/password-strength/vendor/zxcvbn-ts/zxcvbn-ts.bundle.mjs",
        "sha256": "3df9a94ce59461849d152b8f1334586835320f962465dfdfdcb49dacd6eb9a97"
      }
    ]
  }
}
