diff --git a/bramble-api/src/main/java/org/briarproject/bramble/util/StringUtils.java b/bramble-api/src/main/java/org/briarproject/bramble/util/StringUtils.java index b6d082098..e74e19921 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/util/StringUtils.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/util/StringUtils.java @@ -153,4 +153,15 @@ public class StringUtils { return new String(c); } + + public static String getRandomBase32String(int length) { + char[] c = new char[length]; + for (int i = 0; i < length; i++) { + int character = random.nextInt(32); + if (character < 26) c[i] = (char) ('A' + character); + else c[i] = (char) ('2' + (character - 26)); + } + return new String(c); + } + } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactLinkInputActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactLinkInputActivity.java index 46b8446e2..79c5aa5da 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactLinkInputActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactLinkInputActivity.java @@ -113,7 +113,8 @@ public class ContactLinkInputActivity extends BriarActivity } private boolean isBriarLink(CharSequence s) { - return s.length() == 72 && s.toString().startsWith("briar://"); + String regex = "^briar://[A-Z2-7]{64}$"; + return s.toString().trim().matches(regex); } private void updateAddButtonState() { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactLinkOutputActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactLinkOutputActivity.java index 339ebae5c..05aa748d7 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactLinkOutputActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactLinkOutputActivity.java @@ -19,7 +19,7 @@ import javax.annotation.Nullable; import static android.content.Intent.ACTION_SEND; import static android.content.Intent.EXTRA_TEXT; import static android.widget.Toast.LENGTH_SHORT; -import static org.briarproject.bramble.util.StringUtils.getRandomString; +import static org.briarproject.bramble.util.StringUtils.getRandomBase32String; public class ContactLinkOutputActivity extends BriarActivity { @@ -39,7 +39,7 @@ public class ContactLinkOutputActivity extends BriarActivity { ab.setDisplayHomeAsUpEnabled(true); } - String link = "briar://" + getRandomString(64); + String link = "briar://" + getRandomBase32String(64); TextView linkView = findViewById(R.id.linkView); linkView.setText(link);