phase 1 core platform
Milestone 1.1.6: Argon2id Parameters and Crypto Policy ADR — complete.
Milestone 1.1.6: Argon2id Parameters and Crypto Policy ADR
Status: Complete
Goal: 1.1 Persistence and auth data plane
Phase: 1 — Core Platform
Summary
Centralize Argon2id parameters and approved cryptographic primitives in ADR-0010 and packages/crypto; migrate auth and testutil hash paths; production default parallelism p=4.
Branch
chore/m1-1-6-crypto-policy
PR title
chore(security): Argon2id parameters and crypto policy ADR (m1.1.6)
Prerequisites
- 1.1.3 merged (Argon2id PHC in use)
Tasks
- ADR-0010 — parameters, PHC format, approved/forbidden primitives, upgrade procedure
- Amend ADR-0007 §5 to reference ADR-0010
-
packages/crypto— HashSecret/VerifySecret, token/password aliases, random, ConstantTimeEqual - Unit tests — PHC prefix, round-trip, malformed hash, random entropy; advisory timing smoke (skip
-short) - Migrate
services/auth/internal/tokenandinfra/testing/testutil/hash.go - Contributor documentation updated
Files affected
| Path | Action |
|---|---|
packages/crypto/ | Add |
docs/adr/ADR-0010-cryptography-policy.md | Add |
docs/adr/ADR-0007-auth-token-validation.md | Amend §5 |
services/auth/internal/token/hash.go, argon2_params.go, rand.go | Delegate to packages/crypto |
services/auth/internal/config/config.go | crypto.ProductionParams() |
infra/testing/testutil/hash.go | Use packages/crypto |
| contributor workspace | Add |
Testing requirements
go test ./packages/crypto/...
go test ./services/auth/...
go test -tags=integration ./services/auth/...
make repo-guardsDefinition of done
- ADR-0010 accepted; PHC embeds
m=65536,t=3,p=4for new production hashes - No direct
argon2.IDKeyoutsidepackages/crypto - Existing DB hashes verify (params from PHC)
- Docs and env defaults aligned on p=4
Risks
| Risk | Mitigation |
|---|---|
| Timing test flaky | Advisory; skip in -short |
| Slower new hashes vs p=2 legacy default | PHC-embedded params; only new rows use p=4 |
Edit on GitHub
Last updated on