From 19a77209d8f75cb9d491a7fdaf4cdcd6f74547b2 Mon Sep 17 00:00:00 2001 From: Alexander Bakker Date: Fri, 20 Dec 2024 15:04:26 +0100 Subject: [PATCH] Store service name as issuer and tolerate spaces in secret for 2FAS --- .../aegis/importers/TwoFASImporter.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/beemdevelopment/aegis/importers/TwoFASImporter.java b/app/src/main/java/com/beemdevelopment/aegis/importers/TwoFASImporter.java index e618bf59..f0387afb 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/importers/TwoFASImporter.java +++ b/app/src/main/java/com/beemdevelopment/aegis/importers/TwoFASImporter.java @@ -4,9 +4,9 @@ import android.content.Context; import com.beemdevelopment.aegis.R; import com.beemdevelopment.aegis.crypto.CryptoUtils; -import com.beemdevelopment.aegis.encoding.Base32; import com.beemdevelopment.aegis.encoding.Base64; import com.beemdevelopment.aegis.encoding.EncodingException; +import com.beemdevelopment.aegis.otp.GoogleAuthInfo; import com.beemdevelopment.aegis.otp.HotpInfo; import com.beemdevelopment.aegis.otp.OtpInfo; import com.beemdevelopment.aegis.otp.OtpInfoException; @@ -16,6 +16,7 @@ import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.util.IOUtils; import com.beemdevelopment.aegis.util.JsonUtils; import com.beemdevelopment.aegis.vault.VaultEntry; +import com.google.common.base.Strings; import com.topjohnwu.superuser.io.SuFile; import org.json.JSONArray; @@ -173,9 +174,12 @@ public class TwoFASImporter extends DatabaseImporter { private static VaultEntry convertEntry(JSONObject obj) throws DatabaseImporterEntryException { try { - byte[] secret = Base32.decode(obj.getString("secret")); + byte[] secret = GoogleAuthInfo.parseSecret(obj.getString("secret")); JSONObject info = obj.getJSONObject("otp"); - String issuer = info.optString("issuer"); + String issuer = obj.optString("name"); + if (Strings.isNullOrEmpty(issuer)) { + issuer = info.optString("issuer"); + } String name = info.optString("account"); int digits = info.optInt("digits", TotpInfo.DEFAULT_DIGITS); String algorithm = info.optString("algorithm", TotpInfo.DEFAULT_ALGORITHM);