diff options
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, 8 insertions, 0 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 da2d57c6..27a0c584 100644 --- a/app/src/main/java/com/zeapo/pwdstore/model/PasswordEntry.kt +++ b/app/src/main/java/com/zeapo/pwdstore/model/PasswordEntry.kt @@ -4,10 +4,12 @@ */ package com.zeapo.pwdstore.model +import com.zeapo.pwdstore.utils.Otp import com.zeapo.pwdstore.utils.TotpFinder import com.zeapo.pwdstore.utils.UriTotpFinder import java.io.ByteArrayOutputStream import java.io.UnsupportedEncodingException +import java.util.Date /** * A single entry in password store. [totpFinder] is an implementation of [TotpFinder] that let's us @@ -50,6 +52,12 @@ class PasswordEntry(content: String, private val totpFinder: TotpFinder = UriTot return username != null } + fun calculateTotpCode(): String? { + if (totpSecret == null) + return null + return Otp.calculateCode(totpSecret, Date().time / (1000 * totpPeriod), totpAlgorithm, digits) + } + val extraContentWithoutAuthData by lazy { extraContent.splitToSequence("\n").filter { line -> return@filter when { |
