From a25ebefcbbacfaa18e7cc70e297f328ba81cfc1a Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Mon, 21 Sep 2015 14:34:06 -0700 Subject: [PATCH] Support for verification tokens // FREEBIE --- .../textsecure/api/TextSecureAccountManager.java | 4 ++++ .../internal/push/AuthorizationToken.java | 13 +++++++++++++ .../textsecure/internal/push/PushServiceSocket.java | 6 ++++++ 3 files changed, 23 insertions(+) create mode 100644 java/src/main/java/org/whispersystems/textsecure/internal/push/AuthorizationToken.java diff --git a/java/src/main/java/org/whispersystems/textsecure/api/TextSecureAccountManager.java b/java/src/main/java/org/whispersystems/textsecure/api/TextSecureAccountManager.java index b76c0cf596..e2e713402d 100644 --- a/java/src/main/java/org/whispersystems/textsecure/api/TextSecureAccountManager.java +++ b/java/src/main/java/org/whispersystems/textsecure/api/TextSecureAccountManager.java @@ -235,6 +235,10 @@ public class TextSecureAccountManager { return activeTokens; } + public String getAccountVerificationToken() throws IOException { + return this.pushServiceSocket.getAccountVerificationToken(); + } + public String getNewDeviceVerificationCode() throws IOException { return this.pushServiceSocket.getNewDeviceVerificationCode(); } diff --git a/java/src/main/java/org/whispersystems/textsecure/internal/push/AuthorizationToken.java b/java/src/main/java/org/whispersystems/textsecure/internal/push/AuthorizationToken.java new file mode 100644 index 0000000000..e82a137a2b --- /dev/null +++ b/java/src/main/java/org/whispersystems/textsecure/internal/push/AuthorizationToken.java @@ -0,0 +1,13 @@ +package org.whispersystems.textsecure.internal.push; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class AuthorizationToken { + + @JsonProperty + private String token; + + public String getToken() { + return token; + } +} diff --git a/java/src/main/java/org/whispersystems/textsecure/internal/push/PushServiceSocket.java b/java/src/main/java/org/whispersystems/textsecure/internal/push/PushServiceSocket.java index 2ea74663a4..a6c60efadf 100644 --- a/java/src/main/java/org/whispersystems/textsecure/internal/push/PushServiceSocket.java +++ b/java/src/main/java/org/whispersystems/textsecure/internal/push/PushServiceSocket.java @@ -82,6 +82,7 @@ public class PushServiceSocket { private static final String VERIFY_ACCOUNT_CODE_PATH = "/v1/accounts/code/%s"; private static final String VERIFY_ACCOUNT_TOKEN_PATH = "/v1/accounts/token/%s"; private static final String REGISTER_GCM_PATH = "/v1/accounts/gcm/"; + private static final String REQUEST_TOKEN_PATH = "/v1/accounts/token"; private static final String PREKEY_METADATA_PATH = "/v2/keys/"; private static final String PREKEY_PATH = "/v2/keys/%s"; @@ -135,6 +136,11 @@ public class PushServiceSocket { "PUT", JsonUtil.toJson(signalingKeyEntity)); } + public String getAccountVerificationToken() throws IOException { + String responseText = makeRequest(REQUEST_TOKEN_PATH, "GET", null); + return JsonUtil.fromJson(responseText, AuthorizationToken.class).getToken(); + } + public String getNewDeviceVerificationCode() throws IOException { String responseText = makeRequest(PROVISIONING_CODE_PATH, "GET", null); return JsonUtil.fromJson(responseText, DeviceCode.class).getVerificationCode();