diff options
| author | Harsh Shandilya <msfjarvis@gmail.com> | 2020-07-25 14:37:16 +0530 |
|---|---|---|
| committer | Harsh Shandilya <me@msfjarvis.dev> | 2020-07-30 13:49:26 +0530 |
| commit | 64a6e0f4e916122fdd00df2e2b48d96ea7d49c1c (patch) | |
| tree | a47e341e7b64d5a770e7ac0a056513231a1620a6 /app/src/main/java/com/zeapo/pwdstore/model | |
| parent | 35a8e8b42cd828a1c5634d4ee1d50fc4d0d98f5c (diff) | |
| download | HardenedPass-64a6e0f4e916122fdd00df2e2b48d96ea7d49c1c.tar.gz HardenedPass-64a6e0f4e916122fdd00df2e2b48d96ea7d49c1c.zip | |
Properly handle files without passwords (#969)
* Properly handle files without passwords
Fixes #967
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Fix tests
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Only look for TOTP URI
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
(cherry picked from commit 62dbc183d52d93860228316b209ec5aa15f16a08)
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/model')
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/model/PasswordEntry.kt | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/model/PasswordEntry.kt b/app/src/main/java/com/zeapo/pwdstore/model/PasswordEntry.kt index b4fd0165..2cd31256 100644 --- a/app/src/main/java/com/zeapo/pwdstore/model/PasswordEntry.kt +++ b/app/src/main/java/com/zeapo/pwdstore/model/PasswordEntry.kt @@ -31,7 +31,7 @@ class PasswordEntry(content: String, private val totpFinder: TotpFinder = UriTot init { val passContent = content.split("\n".toRegex(), 2).toTypedArray() - password = passContent[0] + password = if (UriTotpFinder.TOTP_FIELDS.any { passContent[0].startsWith(it) }) "" else passContent[0] extraContent = findExtraContent(passContent) username = findUsername() digits = findOtpDigits(content) @@ -85,8 +85,10 @@ class PasswordEntry(content: String, private val totpFinder: TotpFinder = UriTot return null } - private fun findExtraContent(passContent: Array<String>): String { - return if (passContent.size > 1) passContent[1] else "" + private fun findExtraContent(passContent: Array<String>) = when { + password.isEmpty() && passContent[0].isNotEmpty() -> passContent[0] + passContent.size > 1 -> passContent[1] + else -> "" } private fun findTotpSecret(decryptedContent: String): String? { |
