Trim the master password #138

This commit is contained in:
Artem Chepurnoy 2024-02-03 17:17:50 +02:00
parent 77abbe1ecd
commit f992ca22a2
No known key found for this signature in database
GPG Key ID: FAC37D0CF674043E
3 changed files with 15 additions and 9 deletions

View File

@ -3,4 +3,14 @@ package com.artemchep.keyguard.common.model
@JvmInline
value class MasterPassword(
val byteArray: ByteArray,
)
) {
companion object {
fun of(
password: String,
) = MasterPassword(
byteArray = password
.trim()
.toByteArray(),
)
}
}

View File

@ -33,8 +33,7 @@ class ConfirmAccessByPasswordUseCaseImpl(
val hash = fingerprint.master.hash
authConfirmMasterKeyUseCase(salt, hash)
.compose { password: String ->
val data = password.toByteArray()
MasterPassword(data)
MasterPassword.of(password)
}
.invoke(password)
.fold(

View File

@ -77,8 +77,7 @@ class UnlockUseCaseImpl(
) : UnlockUseCase {
private val generateMasterKey = authGenerateMasterKeyUseCase()
.compose { password: String ->
val data = password.toByteArray()
MasterPassword(data)
MasterPassword.of(password)
}
private val sharedFlow = combine(
@ -246,8 +245,7 @@ class UnlockUseCaseImpl(
): VaultState {
val unlockMasterKey = authConfirmMasterKeyUseCase(tokens.master.salt, tokens.master.hash)
.compose { password: String ->
val data = password.toByteArray()
MasterPassword(data)
MasterPassword.of(password)
}
return VaultState.Unlock(
unlockWithMasterPassword = VaultState.Unlock.WithPassword(
@ -315,8 +313,7 @@ class UnlockUseCaseImpl(
val databaseManager by di.instance<DatabaseManager>()
val unlockMasterKey = authConfirmMasterKeyUseCase(tokens.master.salt, tokens.master.hash)
.compose { password: String ->
val data = password.toByteArray()
MasterPassword(data)
MasterPassword.of(password)
}
val getCreateIo: (String, String) -> IO<Unit> = { currentPassword, newPassword ->
unlockMasterKey(currentPassword) // verify current password is valid