From 118221e3df928c1b0afd661db0310836aca64b0e Mon Sep 17 00:00:00 2001 From: Alexander Bakker Date: Sun, 31 Mar 2019 22:21:02 +0200 Subject: [PATCH] Add support for Steam tokens to the andOTP importer Close #44 --- .../aegis/importers/AndOtpFileImporter.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/beemdevelopment/aegis/importers/AndOtpFileImporter.java b/app/src/main/java/com/beemdevelopment/aegis/importers/AndOtpFileImporter.java index ffe63c60..138b5a23 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/importers/AndOtpFileImporter.java +++ b/app/src/main/java/com/beemdevelopment/aegis/importers/AndOtpFileImporter.java @@ -14,6 +14,7 @@ import com.beemdevelopment.aegis.encoding.Base32Exception; import com.beemdevelopment.aegis.otp.HotpInfo; import com.beemdevelopment.aegis.otp.OtpInfo; import com.beemdevelopment.aegis.otp.OtpInfoException; +import com.beemdevelopment.aegis.otp.SteamInfo; import com.beemdevelopment.aegis.otp.TotpInfo; import com.beemdevelopment.aegis.util.ByteInputStream; @@ -60,12 +61,18 @@ public class AndOtpFileImporter extends DatabaseFileImporter { byte[] secret = Base32.decode(obj.getString("secret").toCharArray()); OtpInfo info; - if (type.equals("totp")) { - info = new TotpInfo(secret, algo, digits, obj.getInt("period")); - } else if (type.equals("hotp")) { - info = new HotpInfo(secret, algo, digits, obj.getLong("counter")); - } else { - throw new DatabaseImporterException("unsupported otp type: " + type); + switch (type) { + case "hotp": + info = new HotpInfo(secret, algo, digits, obj.getLong("counter")); + break; + case "totp": + info = new TotpInfo(secret, algo, digits, obj.getInt("period")); + break; + case "steam": + info = new SteamInfo(secret, algo, digits, obj.getInt("period")); + break; + default: + throw new DatabaseImporterException("unsupported otp type: " + type); } String name;