From eb38734452d3ff5c6efc07220bc8264f3af4157d Mon Sep 17 00:00:00 2001 From: Juraj Bednar Date: Sun, 5 Jul 2015 19:53:15 +0200 Subject: [PATCH 1/2] signalingKey needs to be set at register phase, otherwise loading of JSON would fail at verify step, because the key is not contained in JSON there. --- src/main/java/cli/Manager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/cli/Manager.java b/src/main/java/cli/Manager.java index 97070c97..76d54ee0 100644 --- a/src/main/java/cli/Manager.java +++ b/src/main/java/cli/Manager.java @@ -117,6 +117,7 @@ public class Manager { public void register() throws IOException { password = Util.getSecret(18); + signalingKey = Util.getSecret(52); accountManager = new TextSecureAccountManager(URL, TRUST_STORE, username, password); @@ -126,7 +127,6 @@ public class Manager { public void verifyAccount(String verificationCode) throws IOException { verificationCode = verificationCode.replace("-", ""); - signalingKey = Util.getSecret(52); accountManager.verifyAccount(verificationCode, signalingKey, false, axolotlStore.getLocalRegistrationId()); //accountManager.setGcmId(Optional.of(GoogleCloudMessaging.getInstance(this).register(REGISTRATION_ID))); From 5b5f3679b912478e9cc81e0024c68b287f87a488 Mon Sep 17 00:00:00 2001 From: Juraj Bednar Date: Sun, 5 Jul 2015 19:54:03 +0200 Subject: [PATCH 2/2] Add --voice / -v option for voice call verification --- src/main/java/cli/Main.java | 8 ++++++-- src/main/java/cli/Manager.java | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/cli/Main.java b/src/main/java/cli/Main.java index 34f07a55..18a9c57a 100644 --- a/src/main/java/cli/Main.java +++ b/src/main/java/cli/Main.java @@ -17,6 +17,7 @@ package cli; import net.sourceforge.argparse4j.ArgumentParsers; +import net.sourceforge.argparse4j.impl.Arguments; import net.sourceforge.argparse4j.inf.*; import org.apache.commons.io.IOUtils; import org.whispersystems.libaxolotl.InvalidVersionException; @@ -43,9 +44,12 @@ public class Main { .description("valid subcommands") .help("additional help"); Subparser parserRegister = subparsers.addParser("register"); + parserRegister.addArgument("-v", "--voice") + .help("The verification should be done over voice, not sms.") + .action(Arguments.storeTrue()); Subparser parserVerify = subparsers.addParser("verify"); parserVerify.addArgument("verificationCode") - .help("The verification code you received via sms."); + .help("The verification code you received via sms or voice call."); Subparser parserSend = subparsers.addParser("send"); parserSend.addArgument("recipient") .help("Specify the recipients' phone number.") @@ -80,7 +84,7 @@ public class Main { m.createNewIdentity(); } try { - m.register(); + m.register(ns.getBoolean("voice")); } catch (IOException e) { System.out.println("Request verify error: " + e.getMessage()); System.exit(3); diff --git a/src/main/java/cli/Manager.java b/src/main/java/cli/Manager.java index 76d54ee0..9487da59 100644 --- a/src/main/java/cli/Manager.java +++ b/src/main/java/cli/Manager.java @@ -115,13 +115,17 @@ public class Manager { return registered; } - public void register() throws IOException { + public void register(boolean voiceVerication) throws IOException { password = Util.getSecret(18); signalingKey = Util.getSecret(52); accountManager = new TextSecureAccountManager(URL, TRUST_STORE, username, password); - accountManager.requestSmsVerificationCode(); + if (voiceVerication) + accountManager.requestVoiceVerificationCode(); + else + accountManager.requestSmsVerificationCode(); + registered = false; }