Skip to content

feat(auth): support Argon2id alongside legacy scrypt - #40

Merged
thecompez merged 4 commits into
mainfrom
feat/dual-password-kdf-20261010
Oct 10, 2026
Merged

thecompez merged 4 commits into
mainfrom
feat/dual-password-kdf-20261010

Conversation

@thecompez

@thecompez thecompez commented Oct 10, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Add configurable Argon2id password hashing backed by libsodium, while retaining verification of all existing scrypt$v1$ hashes.
  • Allow algorithm selection during installation and via openproof config hashing, with explicit warnings for compatibility, rehashing, downgrade, pepper preservation, and binary rollback.
  • Use the stored hash format to select the verifier, regardless of the currently configured algorithm. Existing passwords and accounts are never bulk-rewritten.
  • Opportunistically rehash only after successful complete authentication, with a conditional PostgreSQL update that cannot overwrite a concurrent password change.
  • Require a functioning Argon2id backend when Argon2id is selected, and include the runtime dependency in release packages.
  • Fix fresh-install migration ordering by deferring three existing tenant-specific client seeds until their organization exists, without changing migration checksums.

Validation

  • 485/485 GitHub CI tests passed, including disposable PostgreSQL integration tests for both KDF migration and tenant-specific migrations.
  • Build, shell/static checks, GitGuardian, and release packaging succeeded.
  • Live OpenProof site stayed healthy throughout development; no user password hashes or production database records were changed.

Operational notes

  • Merged to main as ac4e256.
  • Not deployed to production yet: openproof-canonical.service requires an authorized service restart and release activation.
  • Once any Argon2id hashes exist, rollback must retain dual-algorithm verification. Preserve the existing password pepper.

@thecompez
thecompez merged commit ac4e256 into main Oct 10, 2026
3 checks passed
@thecompez thecompez changed the title feat(auth): configurable Argon2id alongside backward-compatible scrypt feat(auth): support Argon2id alongside legacy scrypt Oct 10, 2026
@thecompez
thecompez deleted the feat/dual-password-kdf-20261010 branch October 10, 2026 07:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant