{"sha":"791286d4dec8ffeba3841901ff91129c63db0af8","node_id":"C_kwDOAaq2ztoAKDc5MTI4NmQ0ZGVjOGZmZWJhMzg0MTkwMWZmOTExMjljNjNkYjBhZjg","commit":{"author":{"name":"Franco Fichtner","email":"franco@opnsense.org","date":"2026-09-16T11:20:29Z"},"committer":{"name":"Franco Fichtner","email":"franco@opnsense.org","date":"2026-09-29T08:36:22Z"},"message":"system: switch password hashing from bcrypt to argon2id\n\nA bit unfortunate both spots exist, but maybe that can change later on.\n\n(cherry picked from commit 97e503079cc685a51ebf793d0d904fc5bb0dadfe)","tree":{"sha":"c3650a56882fd96486e31cfe59be9c1d5ffa37e6","url":"https://api.github.com/repos/opnsense/core/git/trees/c3650a56882fd96486e31cfe59be9c1d5ffa37e6"},"url":"https://api.github.com/repos/opnsense/core/git/commits/791286d4dec8ffeba3841901ff91129c63db0af8","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/opnsense/core/commits/791286d4dec8ffeba3841901ff91129c63db0af8","html_url":"https://github.com/opnsense/core/commit/791286d4dec8ffeba3841901ff91129c63db0af8","comments_url":"https://api.github.com/repos/opnsense/core/commits/791286d4dec8ffeba3841901ff91129c63db0af8/comments","author":{"login":"fichtner","id":1915288,"node_id":"MDQ6VXNlcjE5MTUyODg=","avatar_url":"https://avatars.githubusercontent.com/u/1915288?v=4","gravatar_id":"","url":"https://api.github.com/users/fichtner","html_url":"https://github.com/fichtner","followers_url":"https://api.github.com/users/fichtner/followers","following_url":"https://api.github.com/users/fichtner/following{/other_user}","gists_url":"https://api.github.com/users/fichtner/gists{/gist_id}","starred_url":"https://api.github.com/users/fichtner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fichtner/subscriptions","organizations_url":"https://api.github.com/users/fichtner/orgs","repos_url":"https://api.github.com/users/fichtner/repos","events_url":"https://api.github.com/users/fichtner/events{/privacy}","received_events_url":"https://api.github.com/users/fichtner/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fichtner","id":1915288,"node_id":"MDQ6VXNlcjE5MTUyODg=","avatar_url":"https://avatars.githubusercontent.com/u/1915288?v=4","gravatar_id":"","url":"https://api.github.com/users/fichtner","html_url":"https://github.com/fichtner","followers_url":"https://api.github.com/users/fichtner/followers","following_url":"https://api.github.com/users/fichtner/following{/other_user}","gists_url":"https://api.github.com/users/fichtner/gists{/gist_id}","starred_url":"https://api.github.com/users/fichtner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fichtner/subscriptions","organizations_url":"https://api.github.com/users/fichtner/orgs","repos_url":"https://api.github.com/users/fichtner/repos","events_url":"https://api.github.com/users/fichtner/events{/privacy}","received_events_url":"https://api.github.com/users/fichtner/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"291af34fa5b612522d93c80ec90f15d987c4eb95","url":"https://api.github.com/repos/opnsense/core/commits/291af34fa5b612522d93c80ec90f15d987c4eb95","html_url":"https://github.com/opnsense/core/commit/291af34fa5b612522d93c80ec90f15d987c4eb95"}],"stats":{"total":4,"additions":2,"deletions":2},"files":[{"sha":"fe5362600d1fcffe3f81e79dc3cfaea291567642","filename":"src/etc/inc/auth.inc","status":"modified","additions":1,"deletions":1,"changes":2,"blob_url":"https://github.com/opnsense/core/blob/791286d4dec8ffeba3841901ff91129c63db0af8/src%2Fetc%2Finc%2Fauth.inc","raw_url":"https://github.com/opnsense/core/raw/791286d4dec8ffeba3841901ff91129c63db0af8/src%2Fetc%2Finc%2Fauth.inc","contents_url":"https://api.github.com/repos/opnsense/core/contents/src%2Fetc%2Finc%2Fauth.inc?ref=791286d4dec8ffeba3841901ff91129c63db0af8","patch":"@@ -453,7 +453,7 @@ function local_user_set_password(&$user, $password = null)\n             proc_close($process);\n         }\n     } else {\n-        $hash = password_hash($password, PASSWORD_BCRYPT, [ 'cost' => 11 ]);\n+        $hash = password_hash($password, PASSWORD_ARGON2ID);\n     }\n \n     if ($hash !== false && strpos($hash, '$') === 0) {"},{"sha":"0a334caa27830b55179928541386537324faf1bd","filename":"src/opnsense/mvc/app/models/OPNsense/Auth/User.php","status":"modified","additions":1,"deletions":1,"changes":2,"blob_url":"https://github.com/opnsense/core/blob/791286d4dec8ffeba3841901ff91129c63db0af8/src%2Fopnsense%2Fmvc%2Fapp%2Fmodels%2FOPNsense%2FAuth%2FUser.php","raw_url":"https://github.com/opnsense/core/raw/791286d4dec8ffeba3841901ff91129c63db0af8/src%2Fopnsense%2Fmvc%2Fapp%2Fmodels%2FOPNsense%2FAuth%2FUser.php","contents_url":"https://api.github.com/repos/opnsense/core/contents/src%2Fopnsense%2Fmvc%2Fapp%2Fmodels%2FOPNsense%2FAuth%2FUser.php?ref=791286d4dec8ffeba3841901ff91129c63db0af8","patch":"@@ -181,7 +181,7 @@ public function generatePasswordHash($password)\n                 proc_close($process);\n             }\n         } else {\n-            $hash = password_hash($password, PASSWORD_BCRYPT, [ 'cost' => 11 ]);\n+            $hash = password_hash($password, PASSWORD_ARGON2ID);\n         }\n         return $hash;\n     }"}]}