briar issueshttps://code.briarproject.org/groups/briar/-/issues2020-11-18T22:38:48Zhttps://code.briarproject.org/briar/briar/-/issues/1175Delete private group messages2020-11-18T22:38:48ZakwizgranDelete private group messagesUser feedback: "Will be good if you make function "delete message" and "delete message for all" into group chat. Its really important."
Related to #68, #85.User feedback: "Will be good if you make function "delete message" and "delete message for all" into group chat. Its really important."
Related to #68, #85.https://code.briarproject.org/briar/briar/-/issues/1174Crash when opening link from RSS post2018-03-08T11:33:15ZakwizgranCrash when opening link from RSS postI got this crash when opening a link from an RSS post, before the link warning dialog appeared.
* Android version: 4.3
* Phone model: Samsung Galaxy Nexus (yakju)
* Briar version: 0.16.18 (812522a)
Stacktrace:
```
java.lang.ClassCastEx...I got this crash when opening a link from an RSS post, before the link warning dialog appeared.
* Android version: 4.3
* Phone model: Samsung Galaxy Nexus (yakju)
* Briar version: 0.16.18 (812522a)
Stacktrace:
```
java.lang.ClassCastException: android.support.v7.widget.TintContextWrapper cannot be cast to android.support.v7.app.AppCompatActivity
at org.briarproject.briar.android.util.UiUtils$1.onClick(UiUtils.java:125)
at org.briarproject.briar.android.view.ArticleMovementMethod.onTouchEvent(ArticleMovementMethod.java:61)
at android.widget.TextView.onTouchEvent(TextView.java:7609)
at android.view.View.dispatchTouchEvent(View.java:7384)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1966)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1418)
at android.app.Activity.dispatchTouchEvent(Activity.java:2424)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:68)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:68)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1914)
at android.view.View.dispatchPointerEvent(View.java:7564)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3883)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3778)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3429)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3398)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3483)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3406)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3540)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3429)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3398)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3406)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5419)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5399)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5370)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5493)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:182)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:132)
at android.os.Looper.loop(Looper.java:124)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
```Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1173Use first byte of QR code payload to indicate format version2018-02-22T17:11:38ZakwizgranUse first byte of QR code payload to indicate format versionThe QR code payload currently includes the format version as part of a BDF list, which is base64 encoded on the beta branch but not on the master branch. This makes it awkward to detect incompatible versions.
Move the format version to ...The QR code payload currently includes the format version as part of a BDF list, which is base64 encoded on the beta branch but not on the master branch. This makes it awkward to detect incompatible versions.
Move the format version to the first byte of the payload and reserve the byte that's at the start of base64-encoded BDF lists so it's never used as a format version. This will allow us to detect incompatible versions by checking the first byte without having to try different encodings.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1172Briar doesn't use Tor when connected via Bluetooth dial-up networking2020-11-18T22:38:10ZakwizgranBriar doesn't use Tor when connected via Bluetooth dial-up networkingUser feedback: "On my Android device I use dial up network (DUN) via a BlueTooth connection to a phone. With no mobile network and no WiFi, Briar doesn't find the internet connection and doesn't use it for Tor, while all other apps inclu...User feedback: "On my Android device I use dial up network (DUN) via a BlueTooth connection to a phone. With no mobile network and no WiFi, Briar doesn't find the internet connection and doesn't use it for Tor, while all other apps including OrBot do."https://code.briarproject.org/briar/briar/-/issues/1171Could not connect via wifi to phone running hotspot2018-04-23T10:44:40ZakwizgranCould not connect via wifi to phone running hotspotA user reported that when their phone was running a wifi hotspot, devices connected to the hotspot could connect to each other but not to the phone running the hotspot.
* Android version: 7.1
* Phone model: OnePlus5
* Briar version: 0.16.2A user reported that when their phone was running a wifi hotspot, devices connected to the hotspot could connect to each other but not to the phone running the hotspot.
* Android version: 7.1
* Phone model: OnePlus5
* Briar version: 0.16.2Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1170IllegalArgumentException when reloading activity2022-06-13T15:08:29ZakwizgranIllegalArgumentException when reloading activity* Android version: 7.0
* Phone model: Motorola Moto G (4) (athene)
* Briar version: 0.16.17 (347c2f2)
* User feedback: "Received new message notification. Tried to view it, and got white screen, instead of prior message list loading, als...* Android version: 7.0
* Phone model: Motorola Moto G (4) (athene)
* Briar version: 0.16.17 (347c2f2)
* User feedback: "Received new message notification. Tried to view it, and got white screen, instead of prior message list loading, also at bottom of screen was a place to type message... I've noticed it takes longer and longer for old message list to load."
Stacktrace:
```
java.lang.IllegalArgumentException: reportSizeConfigurations: ActivityRecord not found for: Token{c80ad01 ActivityRecord{dc4d2e8 u0 org.briarproject.briar.beta/org.briarproject.briar.android.contact.ConversationActivity t2562 f}}
at android.os.Parcel.readException(Parcel.java:1687)
at android.os.Parcel.readException(Parcel.java:1636)
at android.app.ActivityManagerProxy.reportSizeConfigurations(ActivityManagerNative.java:6982)
at android.app.ActivityThread.reportSizeConfigurations(ActivityThread.java:2789)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2728)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4524)
at android.app.ActivityThread.-wrap19(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1479)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
```
Log extract:
```
02-09 16:24:47.098 I/Adreno (30469): DequeueBuffer: dequeueBuffer failed
02-09 16:24:47.099 I/Adreno (30469): DequeueBuffer: dequeueBuffer failed
02-09 16:24:47.099 I/Adreno (30469): DequeueBuffer: dequeueBuffer failed
02-09 16:24:47.099 I/Adreno (30469): DequeueBuffer: dequeueBuffer failed
02-09 16:24:47.103 W/OpenGLRenderer(30469): swapBuffers encountered EGL error 12301 on 0xa48967c0, halting rendering...
02-09 16:24:47.116 I/BriarRecyclerView(30469): Adding Handler Callback
02-09 16:24:47.116 I/ConversationActivity(30469): Loading contact took 0 ms
02-09 16:24:47.121 I/BriarRecyclerView(30469): Removing Handler Callback
02-09 16:24:47.171 I/BriarRecyclerView(30469): Adding Handler Callback
02-09 16:24:47.195 E/ACRA (30469): ACRA caught a IllegalArgumentException for org.briarproject.briar.beta
```
Looks like the activity may have failed to load due to an OpenGL error, and the crash happened when Android tried to relaunch the activity.https://code.briarproject.org/briar/briar/-/issues/1169NPE when opening settings during failed startup2018-03-14T12:42:51ZakwizgranNPE when opening settings during failed startup* Android version: 7.1.2
* Phone model: Samsung GT-I9100
* Briar version: 0.16.17 (347c2f2)
* User feedback: "Infinite init loop after password entry in Contacts, Blogs, ... Entering Settings, Crash Report"
Stacktrace:
```
java.lang.Nul...* Android version: 7.1.2
* Phone model: Samsung GT-I9100
* Briar version: 0.16.17 (347c2f2)
* User feedback: "Infinite init loop after password entry in Contacts, Blogs, ... Entering Settings, Crash Report"
Stacktrace:
```
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean org.briarproject.bramble.api.StringMap.getBoolean(java.lang.String, boolean)' on a null object reference
at org.briarproject.briar.android.settings.SettingsFragment.lambda$onCreatePreferences$0$SettingsFragment(SettingsFragment.java:151)
at org.briarproject.briar.android.settings.SettingsFragment$$Lambda$0.onPreferenceClick(Unknown Source)
at android.support.v7.preference.Preference.performClick(Preference.java:1116)
at android.support.v7.preference.Preference.performClick(Preference.java:1099)
at android.support.v7.preference.Preference$1.onClick(Preference.java:169)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22433)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
```
The user's comment about "infinite init loop" seems to refer to the database failing to open. The log shows `LifecycleManagerImpl` starting services at 06:52, then apparently the call to `DatabaseComponent#open()` still hasn't returned at 08:37 when the user opens the settings screen.
So we seem to have two bugs here:
* Startup failed for some reason
* SettingsFragment didn't wait for startup to complete before trying to access settings
Log extract:
```
02-16 06:52:35.663 I/ACRA (21540): ACRA is enabled for org.briarproject.briar.beta, initializing...
02-16 06:52:35.804 I/BriarApplicationImpl(21540): Created
02-16 06:52:35.904 I/CryptoComponentImpl(21540): Default SecureRandom: AndroidOpenSSL SHA1PRNG
02-16 06:52:35.985 I/CryptoComponentImpl(21540): Installed SecureRandom: LinuxPRNG SHA1PRNG
02-16 06:52:36.013 I/BriarApplicationImpl(21560): Created
02-16 06:52:36.027 I/CryptoComponentImpl(21560): Default SecureRandom: AndroidOpenSSL SHA1PRNG
02-16 06:52:36.049 I/CryptoComponentImpl(21560): Installed SecureRandom: LinuxPRNG SHA1PRNG
02-16 06:52:36.052 I/LifecycleManagerImpl(21540): Registering executor TimeLoggingExecutor
02-16 06:52:36.055 I/LifecycleManagerImpl(21540): Registering executor ThreadPoolExecutor
02-16 06:52:36.055 I/LifecycleManagerImpl(21540): Registering executor DelegatedScheduledExecutorService
02-16 06:52:36.059 I/LifecycleManagerImpl(21560): Registering executor TimeLoggingExecutor
02-16 06:52:36.059 I/LifecycleManagerImpl(21560): Registering executor ThreadPoolExecutor
02-16 06:52:36.059 I/LifecycleManagerImpl(21560): Registering executor DelegatedScheduledExecutorService
02-16 06:52:36.061 I/LifecycleManagerImpl(21540): Registering service KeyManagerImpl
02-16 06:52:36.061 I/LifecycleManagerImpl(21540): Registering executor TimeLoggingExecutor
02-16 06:52:36.064 I/LifecycleManagerImpl(21560): Registering service KeyManagerImpl
02-16 06:52:36.064 I/LifecycleManagerImpl(21540): Registering service ValidationManagerImpl
02-16 06:52:36.064 I/LifecycleManagerImpl(21560): Registering executor TimeLoggingExecutor
02-16 06:52:36.065 I/LifecycleManagerImpl(21560): Registering service ValidationManagerImpl
02-16 06:52:36.065 I/LifecycleManagerImpl(21540): Registering client TransportPropertyManagerImpl
02-16 06:52:36.065 I/LifecycleManagerImpl(21540): Registering service PluginManagerImpl
02-16 06:52:36.069 I/LifecycleManagerImpl(21540): Registering client BlogManagerImpl
02-16 06:52:36.070 I/LifecycleManagerImpl(21540): Registering client FeedManagerImpl
02-16 06:52:36.071 I/LifecycleManagerImpl(21540): Registering client GroupInvitationManagerImpl
02-16 06:52:36.071 I/LifecycleManagerImpl(21540): Registering client MessagingManagerImpl
02-16 06:52:36.072 I/LifecycleManagerImpl(21560): Registering client TransportPropertyManagerImpl
02-16 06:52:36.072 I/LifecycleManagerImpl(21560): Registering service PluginManagerImpl
02-16 06:52:36.073 I/LifecycleManagerImpl(21560): Registering client BlogManagerImpl
02-16 06:52:36.074 I/LifecycleManagerImpl(21540): Registering client ForumSharingManagerImpl
02-16 06:52:36.074 I/LifecycleManagerImpl(21560): Registering client FeedManagerImpl
02-16 06:52:36.074 I/LifecycleManagerImpl(21540): Registering client BlogSharingManagerImpl
02-16 06:52:36.074 I/LifecycleManagerImpl(21560): Registering client GroupInvitationManagerImpl
02-16 06:52:36.074 I/LifecycleManagerImpl(21560): Registering client MessagingManagerImpl
02-16 06:52:36.075 I/LifecycleManagerImpl(21560): Registering client ForumSharingManagerImpl
02-16 06:52:36.075 I/LifecycleManagerImpl(21560): Registering client BlogSharingManagerImpl
02-16 06:52:36.075 I/LifecycleManagerImpl(21540): Registering client IntroductionManagerImpl
02-16 06:52:36.082 I/LifecycleManagerImpl(21560): Registering client IntroductionManagerImpl
02-16 06:52:36.101 I/LifecycleManagerImpl(21540): Registering service AndroidNotificationManagerImpl
02-16 06:52:36.101 I/LifecycleManagerImpl(21560): Registering service AndroidNotificationManagerImpl
02-16 06:52:36.101 I/LifecycleManagerImpl(21540): Registering service NetworkUsageLogger
02-16 06:52:36.101 I/LifecycleManagerImpl(21540): Registering service DozeWatchdogImpl
02-16 06:52:36.101 I/LifecycleManagerImpl(21560): Registering service NetworkUsageLogger
02-16 06:52:36.101 I/LifecycleManagerImpl(21560): Registering service DozeWatchdogImpl
02-16 06:52:36.925 I/BriarRecyclerView(21540): Adding Handler Callback
02-16 06:52:36.994 I/TextInputLayout(21540): EditText added is not a TextInputEditText. Please switch to using that class instead.
02-16 06:52:37.744 I/BriarRecyclerView(21540): Removing Handler Callback
02-16 06:52:42.510 I/BriarRecyclerView(21540): Adding Handler Callback
02-16 06:52:42.526 I/BriarService(21540): Created
02-16 06:52:42.554 I/LifecycleManagerImpl(21540): Starting services
02-16 06:52:43.037 W/IInputConnectionWrapper(21540): finishComposingText on inactive InputConnection
02-16 06:52:45.991 I/BriarRecyclerView(21540): Removing Handler Callback
02-16 07:14:58.613 I/BriarRecyclerView(21540): Adding Handler Callback
02-16 07:15:04.718 I/BriarRecyclerView(21540): Removing Handler Callback
02-16 08:34:42.669 I/BriarRecyclerView(21540): Adding Handler Callback
02-16 08:34:54.789 I/BriarRecyclerView(21540): Removing Handler Callback
02-16 08:34:54.798 I/BriarRecyclerView(21540): Adding Handler Callback
02-16 08:35:54.856 I/BriarRecyclerView(21540): Updating Content...
02-16 08:36:54.916 I/BriarRecyclerView(21540): Updating Content...
02-16 08:37:11.963 I/BriarRecyclerView(21540): Removing Handler Callback
02-16 08:37:34.413 E/ACRA (21540): ACRA caught a NullPointerException for org.briarproject.briar.beta
```Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1168Show status message while opening and migrating DB2018-03-08T11:33:15ZakwizgranShow status message while opening and migrating DBAndroid Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1167Non-ASCII characters in RSS post are rendered wrongly2020-11-18T22:36:02ZakwizgranNon-ASCII characters in RSS post are rendered wrongly![device-2018-02-19-174413](/uploads/4b42bb8e8a3dda0c0c5ddc6df24b20eb/device-2018-02-19-174413.png)![device-2018-02-19-174413](/uploads/4b42bb8e8a3dda0c0c5ddc6df24b20eb/device-2018-02-19-174413.png)https://code.briarproject.org/briar/briar/-/issues/1166Stickers2021-10-13T14:08:14ZakwizgranStickersUser feedback: "I am so used to stickers in Telegram that I really missed them here."User feedback: "I am so used to stickers in Telegram that I really missed them here."https://code.briarproject.org/briar/briar/-/issues/1165Optionally send message by pressing enter2020-11-19T04:34:07ZakwizgranOptionally send message by pressing enterA user asked for a setting to send messages when the enter key is pressed, which is possible in other apps.A user asked for a setting to send messages when the enter key is pressed, which is possible in other apps.https://code.briarproject.org/briar/briar/-/issues/1164Bluetooth address and UUID aren't stored until contact connections are enabled2018-02-22T17:11:39ZakwizgranBluetooth address and UUID aren't stored until contact connections are enabledThe fix for #1001 caused a regression: the Bluetooth address and UUID aren't stored in the local transport properties until contact connections are enabled. This causes the following issue:
* Turn off wifi
* Start Briar with a fresh acc...The fix for #1001 caused a regression: the Bluetooth address and UUID aren't stored in the local transport properties until contact connections are enabled. This causes the following issue:
* Turn off wifi
* Start Briar with a fresh account, add a contact via Bluetooth
* Messages can be exchanged with the contact
* Sign out and back in
* Enable Bluetooth contact connections in Briar settings
* Bluetooth plugin can't connect to contact because it doesn't have contact's address or UUID
On the beta branch, which doesn't have the fix for #1001, the Bluetooth plugin connects in the last step.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1163Check whether our key agreement procotols assume contributory behaviour2018-04-28T13:38:03ZakwizgranCheck whether our key agreement procotols assume contributory behaviourWe're migrating to Curve25519 for key agreement, and RFC 7748 [warns](https://tools.ietf.org/html/rfc7748#section-7) that protocols based on Curve25519 should not assume contributory behaviour:
> Protocol designers using Diffie-Hellman ...We're migrating to Curve25519 for key agreement, and RFC 7748 [warns](https://tools.ietf.org/html/rfc7748#section-7) that protocols based on Curve25519 should not assume contributory behaviour:
> Protocol designers using Diffie-Hellman over the curves defined in this document must not assume "contributory behaviour". Specially, contributory behaviour means that both parties' private keys contribute to the resulting shared key. Since curve25519 and curve448 have cofactors of 8 and 4 (respectively), an input point of small order will eliminate any contribution from the other party's private key. This situation can be detected by checking for the all-zero output, which implementations MAY do, as specified in Section 6. However, a large number of existing implementations do not do this.
The Curve25519 website also has a [warning](https://cr.yp.to/ecdh.html#validate):
> There are some unusual non-Diffie-Hellman elliptic-curve protocols that need to ensure ``contributory'' behavior. In those protocols, you should reject the 32-byte strings that, in little-endian form, represent 0, 1, 325606250916557431795983626356110631294008115727848805560023387167927233504 (which has order 8), 39382357235489614581723060781553021112529911719440698176882885853963445705823 (which also has order 8), 2^255 - 19 - 1, 2^255 - 19, 2^255 - 19 + 1, 2^255 - 19 + 325606250916557431795983626356110631294008115727848805560023387167927233504, 2^255 - 19 + 39382357235489614581723060781553021112529911719440698176882885853963445705823, 2(2^255 - 19) - 1, 2(2^255 - 19), and 2(2^255 - 19) + 1. But these exclusions are unnecessary for Diffie-Hellman.
It's not clear to me whether the special public keys listed in the second quote will produce the all-zero output as described in the first quote. This is something we can confirm, and we can check for the all-zero output in our usage of Curve25519. But for defence in depth we should also check whether our key agreement protocols (BQP, the contact exchange protocol and the introduction protocol) assume contributory behaviour.
One thing we need to clarify is whether hashing both public keys into the shared secret (which we already do) is enough to ensure contributory behaviour.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1162Syncing a lot of messages causes a flood of GenerateOffer tasks2018-02-01T17:22:44ZakwizgranSyncing a lot of messages causes a flood of GenerateOffer tasksWhen syncing a forum with 100+ posts, every post that's received causes a MessageSharedEvent to be broadcast, which causes every DuplexOutgoingSession to queue a GenerateOffer task on the DatabaseExecutor. These tasks overload the execut...When syncing a forum with 100+ posts, every post that's received causes a MessageSharedEvent to be broadcast, which causes every DuplexOutgoingSession to queue a GenerateOffer task on the DatabaseExecutor. These tasks overload the executor and are still being run long after the last post is received, which hurts performance and wastes resources.
At minimum, DuplexOutgoingSession should check whether it already has a task that's been queued but not started. A more complete solution would involve sharing this logic between sessions with the same contact, and perhaps attaching information about the message's visibility to the event so unaffected sessions can avoid reacting to the event.akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1161Don't trigger notifications every two seconds when syncing a lot of messages2020-11-19T04:34:55ZakwizgranDon't trigger notifications every two seconds when syncing a lot of messagesWhile syncing a forum with 100+ posts, which takes a few minutes, a notification is triggered every two seconds. This gets annoying pretty quickly. We should consider using a longer interval and/or some kind of backoff.While syncing a forum with 100+ posts, which takes a few minutes, a notification is triggered every two seconds. This gets annoying pretty quickly. We should consider using a longer interval and/or some kind of backoff.https://code.briarproject.org/briar/briar/-/issues/1160Allow users to change the language2018-06-14T20:19:16ZJulian DehmAllow users to change the languageUsers should be able to set the language independently of their OS language.Users should be able to set the language independently of their OS language.Android 1.1Julian DehmJulian Dehmhttps://code.briarproject.org/briar/briar/-/issues/1159Overhaul notifications for Android 82018-03-28T11:39:16ZakwizgranOverhaul notifications for Android 8On Android 8, notification settings for each notification channel are managed through the system settings app. Changes made through Briar's settings screen are ineffective.
* Check that the default behaviour of our notifications (sound,...On Android 8, notification settings for each notification channel are managed through the system settings app. Changes made through Briar's settings screen are ineffective.
* Check that the default behaviour of our notifications (sound, vibration, etc) is consistent across versions
* Don't show Briar's notification settings on Android 8 (maybe link to the system settings instead, if possible?)Android 1.0Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1158FLAG_SECURE not applying to settings dialogs (when Chromecasted)2020-11-19T04:35:35ZakwizgranFLAG_SECURE not applying to settings dialogs (when Chromecasted)User feedback: "Setting popups are still seen in mirrored screen, the rest is black but the popup where you can select 1 of the 2 options is still mirrored."User feedback: "Setting popups are still seen in mirrored screen, the rest is black but the popup where you can select 1 of the 2 options is still mirrored."https://code.briarproject.org/briar/briar/-/issues/1157Migrate account from beta to 1.02018-06-11T10:13:00ZakwizgranMigrate account from beta to 1.0A user asked for the ability to migrate their account from the beta version to the final release. We're unlikely to implement this as it would involve a lot of work and beta testers have already been warned that it won't be possible.A user asked for the ability to migrate their account from the beta version to the final release. We're unlikely to implement this as it would involve a lot of work and beta testers have already been warned that it won't be possible.https://code.briarproject.org/briar/briar/-/issues/1156ClassNotFoundException in fork of Briar2018-01-31T14:08:41ZakwizgranClassNotFoundException in fork of BriarWe've had a couple of crash reports from a fork of Briar with the package name `org.chagolchana.noconnect.beta`. This isn't our problem, but I'm opening this ticket to document the crashes in case the information becomes relevant.
```
C...We've had a couple of crash reports from a fork of Briar with the package name `org.chagolchana.noconnect.beta`. This isn't our problem, but I'm opening this ticket to document the crashes in case the information becomes relevant.
```
Caused by: java.lang.ClassNotFoundException: org.briarproject.briar.android.view.BriarRecyclerViewBehavior
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:324)
at android.support.design.widget.CoordinatorLayout.parseBehavior(CoordinatorLayout.java:579)
```