MCPcopy Index your code
hub / github.com/coder/code-server / handlePasswordValidation

Function handlePasswordValidation

src/node/util.ts:223–262  ·  view source on GitHub ↗
({
  passwordMethod,
  passwordFromArgs,
  passwordFromRequestBody,
  hashedPasswordFromArgs,
}: HandlePasswordValidationArgs)

Source from the content-addressed store, hash-verified

221 * using the PasswordMethod
222 */
223export async function handlePasswordValidation({
224 passwordMethod,
225 passwordFromArgs,
226 passwordFromRequestBody,
227 hashedPasswordFromArgs,
228}: HandlePasswordValidationArgs): Promise<PasswordValidation> {
229 const passwordValidation = <PasswordValidation>{
230 isPasswordValid: false,
231 hashedPassword: "",
232 }
233
234 switch (passwordMethod) {
235 case "PLAIN_TEXT": {
236 const isValid = passwordFromArgs ? safeCompare(passwordFromRequestBody, passwordFromArgs) : false
237 passwordValidation.isPasswordValid = isValid
238
239 const hashedPassword = await hash(passwordFromRequestBody)
240 passwordValidation.hashedPassword = hashedPassword
241 break
242 }
243 case "SHA256": {
244 const isValid = isHashLegacyMatch(passwordFromRequestBody, hashedPasswordFromArgs || "")
245 passwordValidation.isPasswordValid = isValid
246
247 passwordValidation.hashedPassword = hashedPasswordFromArgs || (await hashLegacy(passwordFromRequestBody))
248 break
249 }
250 case "ARGON2": {
251 const isValid = await isHashMatch(passwordFromRequestBody, hashedPasswordFromArgs || "")
252 passwordValidation.isPasswordValid = isValid
253
254 passwordValidation.hashedPassword = hashedPasswordFromArgs || ""
255 break
256 }
257 default:
258 break
259 }
260
261 return passwordValidation
262}
263
264export type IsCookieValidArgs = {
265 passwordMethod: PasswordMethod

Callers 1

login.tsFile · 0.90

Calls 4

hashFunction · 0.85
isHashLegacyMatchFunction · 0.85
hashLegacyFunction · 0.85
isHashMatchFunction · 0.85

Tested by

no test coverage detected