{
  "feed_url": "https://hshlib.com/feed.json",
  "home_page_url": "https://hshlib.com/",
  "items": [
    {
      "authors": [
        {
          "name": "Sebastien Rousseau"
        }
      ],
      "content_html": "The page you asked for is not on hshlib.com.",
      "date_modified": "",
      "date_published": "",
      "id": "https://hshlib.com/404/",
      "language": "en-GB",
      "tags": [],
      "title": "Page not found | hsh",
      "url": "https://hshlib.com/404/"
    },
    {
      "authors": [
        {
          "name": "Sebastien Rousseau"
        }
      ],
      "content_html": "Who builds hsh, and the facts about the project: its crates, licence, Rust version, latest release, and where its source and security policy live.",
      "date_modified": "",
      "date_published": "",
      "id": "https://hshlib.com/about/",
      "language": "en-GB",
      "tags": [],
      "title": "About hsh and its author, Sebastien Rousseau | hsh",
      "url": "https://hshlib.com/about/"
    },
    {
      "authors": [
        {
          "name": "Sebastien Rousseau"
        }
      ],
      "content_html": "How hshlib.com is built to be accessible, how it is checked on every build, and how to report a barrier.",
      "date_modified": "",
      "date_published": "",
      "id": "https://hshlib.com/accessibility/",
      "language": "en-GB",
      "tags": [],
      "title": "Accessibility statement | hsh",
      "url": "https://hshlib.com/accessibility/"
    },
    {
      "authors": [
        {
          "name": "Sebastien Rousseau"
        }
      ],
      "content_html": "How long hsh takes to hash a password depends on the parameters and the machine. How to measure it with hsh calibrate and the Criterion benchmarks, and why no fixed numbers are published.",
      "date_modified": "",
      "date_published": "",
      "id": "https://hshlib.com/benchmarks/",
      "language": "en-GB",
      "tags": [],
      "title": "Performance: calibrating the cost of a password hash | hsh",
      "url": "https://hshlib.com/benchmarks/"
    },
    {
      "authors": [
        {
          "name": "Sebastien Rousseau"
        }
      ],
      "content_html": "What changed in hsh's recent releases, from the 0.0.9 rewrite to the FIPS backend in 0.0.10 and the partial 0.0.12 release, with links to the full changelog.",
      "date_modified": "",
      "date_published": "",
      "id": "https://hshlib.com/changelog/",
      "language": "en-GB",
      "tags": [],
      "title": "Changelog: hsh releases up to 0.0.12 | hsh",
      "url": "https://hshlib.com/changelog/"
    },
    {
      "authors": [
        {
          "name": "Sebastien Rousseau"
        }
      ],
      "content_html": "Send a question or feedback about hsh or hshlib.com. Bugs and feature requests are best filed as GitHub issues, and security reports go privately.",
      "date_modified": "",
      "date_published": "",
      "id": "https://hshlib.com/contact/",
      "language": "en-GB",
      "tags": [],
      "title": "Contact the hsh project | hsh",
      "url": "https://hshlib.com/contact/"
    },
    {
      "authors": [
        {
          "name": "Sebastien Rousseau"
        }
      ],
      "content_html": "How to contribute to hsh: filing a useful issue, the checks a pull request passes, the commit style and the rules on unsafe code and random sources.",
      "date_modified": "",
      "date_published": "",
      "id": "https://hshlib.com/contribute/",
      "language": "en-GB",
      "tags": [],
      "title": "Contributing to hsh | hsh",
      "url": "https://hshlib.com/contribute/"
    },
    {
      "authors": [
        {
          "name": "Sebastien Rousseau"
        }
      ],
      "content_html": "A guide to hsh's API: the two calls, the policy presets and builder, the outcomes, errors, every Cargo feature and the crates in the workspace.",
      "date_modified": "",
      "date_published": "",
      "id": "https://hshlib.com/documentation/",
      "language": "en-GB",
      "tags": [],
      "title": "API guide: policies, the builder, Cargo features and crates | hsh",
      "url": "https://hshlib.com/documentation/"
    },
    {
      "authors": [
        {
          "name": "Sebastien Rousseau"
        }
      ],
      "content_html": "Answers about hsh: what it is, quantum resistance, choosing an algorithm, migrating hashes, FIPS 140-3, cloud peppers, long bcrypt passwords, no_std, versions and the licence.",
      "date_modified": "",
      "date_published": "",
      "id": "https://hshlib.com/faqs/",
      "language": "en-GB",
      "tags": [],
      "title": "Frequently asked questions about hsh | hsh",
      "url": "https://hshlib.com/faqs/"
    },
    {
      "authors": [
        {
          "name": "Sebastien Rousseau"
        }
      ],
      "content_html": "What hsh does: hashing and verifying under one policy, rehash on login, Argon2id, bcrypt, scrypt and PBKDF2, a versioned HMAC pepper, a fail-closed FIPS 140-3 mode, safety rails, a command-line tool and general-purpose digests.",
      "date_modified": "",
      "date_published": "",
      "id": "https://hshlib.com/features/",
      "language": "en-GB",
      "tags": [],
      "title": "Features: one policy, rehash on login, pepper and FIPS 140-3 mode | hsh",
      "url": "https://hshlib.com/features/"
    },
    {
      "authors": [
        {
          "name": "Sebastien Rousseau"
        }
      ],
      "content_html": "Add hsh to a Rust project, hash a password under the OWASP 2025 policy, verify it and save the upgraded hash, choose another algorithm, and install the command-line tool.",
      "date_modified": "",
      "date_published": "",
      "id": "https://hshlib.com/getting-started/",
      "language": "en-GB",
      "tags": [],
      "title": "Getting started with hsh: hash, verify and upgrade a password | hsh",
      "url": "https://hshlib.com/getting-started/"
    },
    {
      "authors": [
        {
          "name": "Sebastien Rousseau"
        }
      ],
      "content_html": "hshlib.com is built with Static Site Generator (SSG) and the cipher theme, and deployed to GitHub Pages by GitHub Actions.",
      "date_modified": "",
      "date_published": "",
      "id": "https://hshlib.com/made-with-ssg/",
      "language": "en-GB",
      "tags": [],
      "title": "Made with Static Site Generator | hsh",
      "url": "https://hshlib.com/made-with-ssg/"
    },
    {
      "authors": [
        {
          "name": "Sebastien Rousseau"
        }
      ],
      "content_html": "How to move password storage to hsh from the bcrypt, rust-argon2 or argonautica crates or from an older hsh, keeping existing hashes valid and upgrading them as users sign in.",
      "date_modified": "",
      "date_published": "",
      "id": "https://hshlib.com/migration/",
      "language": "en-GB",
      "tags": [],
      "title": "Migrate to hsh from bcrypt, rust-argon2, argonautica or an older hsh | hsh",
      "url": "https://hshlib.com/migration/"
    },
    {
      "authors": [
        {
          "name": "Sebastien Rousseau"
        }
      ],
      "content_html": "What happens to your data on hshlib.com: hosting on GitHub Pages, the contact form, and the theme preference stored in your browser.",
      "date_modified": "",
      "date_published": "",
      "id": "https://hshlib.com/privacy/",
      "language": "en-GB",
      "tags": [],
      "title": "Privacy: what hshlib.com collects | hsh",
      "url": "https://hshlib.com/privacy/"
    },
    {
      "authors": [
        {
          "name": "Sebastien Rousseau"
        }
      ],
      "content_html": "How to report a vulnerability in hsh, what it defends against, what is a stub or not yet done, the checks that run, and how to verify a release.",
      "date_modified": "",
      "date_published": "",
      "id": "https://hshlib.com/security/",
      "language": "en-GB",
      "tags": [],
      "title": "Security: reporting, what hsh defends against, and verifying a release | hsh",
      "url": "https://hshlib.com/security/"
    },
    {
      "authors": [
        {
          "name": "Sebastien Rousseau"
        }
      ],
      "content_html": "The terms for using hshlib.com and the licences that apply to hsh and to this website's source.",
      "date_modified": "",
      "date_published": "",
      "id": "https://hshlib.com/terms/",
      "language": "en-GB",
      "tags": [],
      "title": "Terms of use | hsh",
      "url": "https://hshlib.com/terms/"
    }
  ],
  "language": "en-GB",
  "title": "hsh",
  "version": "https://jsonfeed.org/version/1.1"
}