From 09cba8774d77cdf9710fb42b1ebd23c98a61db80 Mon Sep 17 00:00:00 2001 From: Chris Eager Date: Wed, 17 Mar 2021 17:09:10 -0500 Subject: [PATCH] Add support for verification codes without an internal hyphen --- .../service/VerificationCodeParser.java | 2 +- .../service/VerificationCodeParserTest.java | 29 ++++++++++++++++++- .../internal/push/PushServiceSocket.java | 2 +- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/VerificationCodeParser.java b/app/src/main/java/org/thoughtcrime/securesms/service/VerificationCodeParser.java index 2296146047..4d2751a80e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/VerificationCodeParser.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/VerificationCodeParser.java @@ -24,7 +24,7 @@ import java.util.regex.Pattern; public class VerificationCodeParser { - private static final Pattern CHALLENGE_PATTERN = Pattern.compile("(.*\\D|^)([0-9]{3,4})-([0-9]{3,4}).*", Pattern.DOTALL); + private static final Pattern CHALLENGE_PATTERN = Pattern.compile("(.*\\D|^)([0-9]{3,4})-?([0-9]{3,4}).*", Pattern.DOTALL); public static Optional parse(String messageBody) { if (messageBody == null) { diff --git a/app/src/test/java/org/thoughtcrime/securesms/service/VerificationCodeParserTest.java b/app/src/test/java/org/thoughtcrime/securesms/service/VerificationCodeParserTest.java index 0b5ee75abe..7f40d17dce 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/service/VerificationCodeParserTest.java +++ b/app/src/test/java/org/thoughtcrime/securesms/service/VerificationCodeParserTest.java @@ -50,7 +50,34 @@ public class VerificationCodeParserTest extends BaseUnitTest { {"hi 1234-5678\n\nsgnl://verify/1234-5678\n\naAbBcCdDeEf", "12345678"}, {"howdy 1234-5678\n\nsgnl://verify/1234-5678\n\naAbBcCdDeEf", "12345678"}, {"test 1234-5678\n\nsgnl://verify/1234-5678", "12345678"}, - {"%#($#&@**$@(@*1234-5678\naAbBcCdDeEf", "12345678"} + {"%#($#&@**$@(@*1234-5678\naAbBcCdDeEf", "12345678"}, + + {"<#>あなたのSignal 認証コード: 832985\nabAbCDEFO1g", "832985"}, + {"<#>あなたのSignal 認証コード: 832-985\nabAbCDEFO1g", "832985"}, + {"<#>Kode verifikasi Signal anda adalah: 832985\nabAbCDEFO1g", "832985"}, + {"<#>Kode verifikasi Signal anda adalah: 832-985\nabAbCDEFO1g", "832985"}, + {"<#>Ваш проверочный код Signal: 832985\nabAbCDEFO1g", "832985"}, + {"<#>Ваш проверочный код Signal: 832-985\nabAbCDEFO1g", "832985"}, + {"<#>आपका Signal सत्यापन कोड है: 832985\nabAbCDEFO1g", "832985"}, + {"<#>आपका Signal सत्यापन कोड है: 832-985\nabAbCDEFO1g", "832985"}, + + {"<#>Votre code de vérification Signal est: 490941\nabAbCDEFO1g", "490941"}, + {"<#>Kode verifikasi Signal anda adalah: 490941\nabAbCDEFO1g", "490941"}, + {"<#>Kode verifikasi Signal anda adalah: 490-941\nabAbCDEFO1g", "490941"}, + {"<#>\u202Bرمز تعريفك الخاص ب Signal هو 490941\u202C\nabAbCDEFO1g", "490941"}, + {"<#>\u202Bرمز تعريفك الخاص ب Signal هو 490-941\u202C\nabAbCDEFO1g", "490941"}, + {"<#>您的 Signal 驗證代碼是:490941\nabAbCDEFO1g", "490941"}, + {"<#>(Signal) קוד האימות שלך הוא 490941\nabAbCDEFO1g", "490941"}, + {"<#>(Signal) קוד האימות שלך הוא 490-941\nabAbCDEFO1g", "490941"}, + + {"<#>Your Signal verification code is: 445477\nabAbCDEFO1g", "445477"}, + + {"<#>Ο Signal κωδικός σας επιβεβαίωσης είναι: 054247\nabAbCDEFO1g", "054247"}, + {"<#>Ο Signal κωδικός σας επιβεβαίωσης είναι: 054-247\nabAbCDEFO1g", "054247"}, + {"<#>El teu Signal codi de verificació és: 054247\nabAbCDEFO1g", "054247"}, + {"<#>Ang iyong pamberipikasyong code sa Signal ay: 054247\nabAbCDEFO1g", "054247"}, + {"<#>Ang iyong pamberipikasyong code sa Signal ay: 054-247\nabAbCDEFO1g", "054247"}, + {"<#>Jou Signal verifikasiekode is: 054247\nabAbCDEFO1g", "054247"} }); } diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/PushServiceSocket.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/PushServiceSocket.java index c94ce7de74..341636ec3e 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/PushServiceSocket.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/PushServiceSocket.java @@ -259,7 +259,7 @@ public class PushServiceSocket { } public void requestSmsVerificationCode(boolean androidSmsRetriever, Optional captchaToken, Optional challenge) throws IOException { - String path = String.format(CREATE_ACCOUNT_SMS_PATH, credentialsProvider.getE164(), androidSmsRetriever ? "android-2020-01" : "android"); + String path = String.format(CREATE_ACCOUNT_SMS_PATH, credentialsProvider.getE164(), androidSmsRetriever ? "android-2021-03" : "android"); if (captchaToken.isPresent()) { path += "&captcha=" + captchaToken.get();