briar issueshttps://code.briarproject.org/groups/briar/-/issues2019-02-26T14:44:09Zhttps://code.briarproject.org/briar/briar/-/issues/431New Design for Navigation Drawer2019-02-26T14:44:09ZTorsten GroteNew Design for Navigation DrawerWe have a new navigation drawer now that looks like this:
![device-2016-06-02-191101](/uploads/28ab48ef3a7e921375313de3c4783547/device-2016-06-02-191101.png)
The Briar logo in the header is just provisional and should be replaced w...We have a new navigation drawer now that looks like this:
![device-2016-06-02-191101](/uploads/28ab48ef3a7e921375313de3c4783547/device-2016-06-02-191101.png)
The Briar logo in the header is just provisional and should be replaced with a nice header graphics. Maybe this should already take an identity selector into account? Here's an example of how it looks like for other apps:
![p6rjm](/uploads/2f2e0b6ea476f60ae72225ef21e016e0/p6rjm.png)
Some feature futures that should maybe be taken into account already:
* More data transports might be added later and users will probably be able to turn individual transports on/off
* More identities will be supported, so maybe the last two used should be in the account header
* More features might be added that will be added to the navigation drawer menu as wellhttps://code.briarproject.org/briar/briar/-/issues/317Remove binaries from git history2022-01-21T09:59:52ZakwizgranRemove binaries from git historyThe git repo is huge. Rewrite the commit history to remove unnecessary binaries (fonts, android.jar, etc).
We could also remove the Tor binaries and any jars that have been converted to Gradle dependencies, but that would make it imposs...The git repo is huge. Rewrite the commit history to remove unnecessary binaries (fonts, android.jar, etc).
We could also remove the Tor binaries and any jars that have been converted to Gradle dependencies, but that would make it impossible to build old commits that used those binaries.https://code.briarproject.org/briar/briar/-/issues/467Migrate web, etherpad and email servers2018-08-24T17:51:52ZakwizgranMigrate web, etherpad and email serversSet up a new VM for web, etherpad and email. Migrate the web and etherpad servers from 213.108.108.22, preserving pad contents. Migrate the email and mailman servers from 66.228.56.76, preserving mailbox contents, list membership and lis...Set up a new VM for web, etherpad and email. Migrate the web and etherpad servers from 213.108.108.22, preserving pad contents. Migrate the email and mailman servers from 66.228.56.76, preserving mailbox contents, list membership and list archives.akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/384Create conversation manager2021-07-05T13:41:40ZakwizgranCreate conversation managerThe UI combines private messages, introduction messages and forum sharing messages into a single conversation. This requires various parts of the UI (contact list, conversation view, notification manager) to combine messages from the mes...The UI combines private messages, introduction messages and forum sharing messages into a single conversation. This requires various parts of the UI (contact list, conversation view, notification manager) to combine messages from the messaging, introduction, and forum sharing clients. Create a ConversationManager in the core that deals with combining these messages and presents a unified API (including events) to the UI.https://code.briarproject.org/briar/briar/-/issues/300Ensure that gradle-witness can verify all dependencies2019-05-15T10:37:23ZakwizgranEnsure that gradle-witness can verify all dependenciesSome of our compile-time dependencies use `classpath`, `apt` or `provided` rather than `compile`. Ensure that gradle-witness can verify them.Some of our compile-time dependencies use `classpath`, `apt` or `provided` rather than `compile`. Ensure that gradle-witness can verify them.akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/369Remove UiCallback interface2018-06-11T10:16:35ZakwizgranRemove UiCallback interfaceThis interface is an ancient throwback. Plugins that need to call back into the UI should use specialised callback interfaces provided by their factories.This interface is an ancient throwback. Plugins that need to call back into the UI should use specialised callback interfaces provided by their factories.https://code.briarproject.org/briar/briar/-/issues/290Reset Tor polling state if guard connection is lost2022-06-06T13:24:28ZakwizgranReset Tor polling state if guard connection is lostIf the Tor plugin loses its guard connection for reasons other than a change in the device's network connectivity (which we already detect), the plugin should reset its polling state, just as it would in response to a network connectivit...If the Tor plugin loses its guard connection for reasons other than a change in the device's network connectivity (which we already detect), the plugin should reset its polling state, just as it would in response to a network connectivity change. Otherwise we could end up in the following situation:
* Hidden service descriptor published
* Stop polling
* Guard connection lost, hidden service unreachable
* Contact's hidden service descriptor published
* Contact stops polling
* Guard connection re-established
* Hidden service descriptor republished
* We never connect to the contact, they never connect to us
We already receive and log OR connection status events - the plugin should be able to use these to detect when our last OR connection closes and call the existing code for handling network connectivity changes.Android 1.4https://code.briarproject.org/briar/briar/-/issues/283Bluetooth key exchange task won't die2018-03-08T15:58:15ZakwizgranBluetooth key exchange task won't dieAfter failing to add a contact on the Sony Xperia Tipo (Android 4.0.4), the Bluetooth key exchange task continued to make failed connection attempts every two seconds. I can't tell whether this was related to the initial failure and/or t...After failing to add a contact on the Sony Xperia Tipo (Android 4.0.4), the Bluetooth key exchange task continued to make failed connection attempts every two seconds. I can't tell whether this was related to the initial failure and/or the failure of subsequent attempts to add a contact.
```
04-04 16:36:42.279 2133-2133/org.briarproject I/DroidtoothPlugin: Scan mode: None
04-04 16:36:42.539 2133-2133/org.briarproject I/DroidtoothPlugin: Scan mode: Connectable
04-04 16:36:42.539 2133-2133/org.briarproject I/DroidtoothPlugin: Scan mode: Connectable
04-04 16:36:42.549 2133-2133/org.briarproject I/DroidtoothPlugin: Scan mode: Connectable
04-04 16:36:42.649 2133-2133/org.briarproject I/DroidtoothPlugin: Bluetooth enabled
04-04 16:36:42.649 2133-11695/org.briarproject I/DroidtoothPlugin: Local address D0:51:62:52:53:62
04-04 16:36:42.799 2133-2133/org.briarproject I/ShowQrCodeFragment: Bluetooth enabled
04-04 16:36:43.369 2133-11695/org.briarproject I/InsecureBluetooth: Listening with new API
04-04 16:36:43.389 2133-12290/org.briarproject I/KeyAgreementConnector: Starting BQP listeners
04-04 16:36:43.389 2133-12290/org.briarproject I/DroidtoothPlugin: Key agreement UUID b32e3352-044d-30c0-b542-e81c88fff7d1
04-04 16:36:43.389 2133-12290/org.briarproject I/InsecureBluetooth: Listening with new API
04-04 16:36:43.439 2133-11695/org.briarproject I/DroidtoothPlugin: Socket bound
04-04 16:36:43.449 2133-11694/org.briarproject I/PollerImpl: Polling DroidtoothPlugin
04-04 16:36:55.729 2133-11870/org.briarproject I/DroidtoothPlugin: bt: Incoming connection
04-04 16:36:55.729 2133-11870/org.briarproject I/KeyAgreementConnector: bt: Waiting for connection
04-04 16:36:56.739 2133-11870/org.briarproject I/KeyAgreementConnector: bt: Waiting for connection
04-04 16:36:57.099 2133-12293/org.briarproject I/QrCodeDecoder: Decoding barcode took 206 ms
04-04 16:36:57.099 2133-2133/org.briarproject I/ShowQrCodeFragment: Got result from decoder
04-04 16:36:57.099 2133-2133/org.briarproject I/ShowQrCodeFragment: Releasing camera
04-04 16:36:57.419 2133-2133/org.briarproject I/CameraView: Surface destroyed
04-04 16:36:57.439 2133-12297/org.briarproject I/KeyAgreementConnector: Starting outgoing BQP connections
04-04 16:36:57.439 2133-11694/org.briarproject I/DroidtoothPlugin: Connecting to key agreement UUID a76f5a79-4148-326f-a831-b450cd7378a9
04-04 16:36:57.449 2133-11694/org.briarproject I/InsecureBluetooth: Creating socket with new API
04-04 16:36:57.449 2133-11694/org.briarproject I/DroidtoothPlugin: Connecting to 64:A7:69:F6:98:D1
04-04 16:36:57.699 2133-11694/org.briarproject I/DroidtoothPlugin: Connected to 64:A7:69:F6:98:D1
04-04 16:36:57.699 2133-11694/org.briarproject I/KeyAgreementConnector: bt: Outgoing connection
04-04 16:36:57.699 2133-12297/org.briarproject I/KeyAgreementConnector: Stopping BQP listeners
04-04 16:36:57.699 2133-12297/org.briarproject I/KeyAgreementConnector: Cancelled task
04-04 16:36:57.699 2133-12297/org.briarproject I/KeyAgreementTaskImpl: Starting BQP protocol
04-04 16:37:00.439 2133-12297/org.briarproject I/Sec1KeyParser: Parsing public key took 1610 ms
04-04 16:37:02.339 2133-12297/org.briarproject I/CryptoComponentImpl: Deriving shared secret took 1899 ms
04-04 16:37:06.109 2133-12297/org.briarproject I/KeyAgreementTaskImpl: Finished BQP protocol
04-04 16:37:17.559 2133-11870/org.briarproject I/PollerImpl: Polling DroidtoothPlugin
04-04 16:38:13.959 2133-12294/org.briarproject I/ShowQrCodeFragment: Opening camera
04-04 16:38:13.959 2133-12347/org.briarproject I/KeyAgreementConnector: Starting BQP listeners
04-04 16:38:13.959 2133-12347/org.briarproject I/DroidtoothPlugin: Key agreement UUID 03cdea53-5012-378e-b2fe-2625aa2bc46f
04-04 16:38:13.959 2133-12347/org.briarproject I/InsecureBluetooth: Listening with new API
04-04 16:38:14.809 2133-2133/org.briarproject I/CameraView: Display orientation 90 degrees
04-04 16:38:14.809 2133-2133/org.briarproject I/CameraView: Scene modes: [auto, night, snow, sports]
04-04 16:38:14.809 2133-2133/org.briarproject I/CameraView: Focus modes: [infinity, fixed]
04-04 16:38:14.809 2133-2133/org.briarproject I/CameraView: Setting focus mode to fixed
04-04 16:38:14.809 2133-2133/org.briarproject I/CameraView: Size 640x480, stretch 2.1440537, pixels 307200, score 143280.0
04-04 16:38:14.809 2133-2133/org.briarproject I/CameraView: Size 640x368, stretch 2.7965918, pixels 235520, score 84216.8
04-04 16:38:14.819 2133-2133/org.briarproject I/CameraView: Size 512x288, stretch 2.8587382, pixels 147456, score 51580.8
04-04 16:38:14.819 2133-2133/org.briarproject I/CameraView: Size 384x288, stretch 2.1440537, pixels 110592, score 51580.797
04-04 16:38:14.819 2133-2133/org.briarproject I/CameraView: Size 352x288, stretch 1.9653825, pixels 101376, score 51580.8
04-04 16:38:14.819 2133-2133/org.briarproject I/CameraView: Size 320x240, stretch 2.1440537, pixels 76800, score 35820.0
04-04 16:38:14.819 2133-2133/org.briarproject I/CameraView: Size 176x144, stretch 1.9653825, pixels 25344, score 12895.2
04-04 16:38:14.819 2133-2133/org.briarproject I/CameraView: Best size 640x480
04-04 16:38:27.389 2133-2133/org.briarproject I/ShowQrCodeFragment: Releasing camera
04-04 16:38:27.839 2133-12365/org.briarproject I/KeyAgreementConnector: Stopping BQP listeners
04-04 16:38:30.579 2133-12363/org.briarproject I/ChooseIdentityFragment: Loading authors took 2 ms
04-04 16:38:31.629 2133-12369/org.briarproject I/KeyAgreementConnector: Starting BQP listeners
04-04 16:38:31.649 2133-12369/org.briarproject I/DroidtoothPlugin: Key agreement UUID bafa97a2-46a6-3b19-a2a2-ea62fb7db10f
04-04 16:38:31.649 2133-12369/org.briarproject I/InsecureBluetooth: Listening with new API
04-04 16:38:31.649 2133-12226/org.briarproject I/ShowQrCodeFragment: Opening camera
04-04 16:38:31.679 2133-2133/org.briarproject I/CameraView: Surface created
04-04 16:38:31.679 2133-2133/org.briarproject I/CameraView: Surface changed: 320x199
04-04 16:38:32.359 2133-2133/org.briarproject I/CameraView: Display orientation 90 degrees
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Scene modes: [auto, night, snow, sports]
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Focus modes: [infinity, fixed]
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Setting focus mode to fixed
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Size 640x480, stretch 2.1440537, pixels 307200, score 143280.0
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Size 640x368, stretch 2.7965918, pixels 235520, score 84216.8
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Size 512x288, stretch 2.8587382, pixels 147456, score 51580.8
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Size 384x288, stretch 2.1440537, pixels 110592, score 51580.797
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Size 352x288, stretch 1.9653825, pixels 101376, score 51580.8
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Size 320x240, stretch 2.1440537, pixels 76800, score 35820.0
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Size 176x144, stretch 1.9653825, pixels 25344, score 12895.2
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Best size 640x480
04-04 16:38:55.719 2133-11870/org.briarproject I/DroidtoothPlugin: bt: Incoming connection
04-04 16:38:55.719 2133-11870/org.briarproject I/KeyAgreementConnector: bt: Data available
04-04 16:38:56.739 2133-11870/org.briarproject I/PollerImpl: Polling TorPlugin
04-04 16:39:02.229 2133-12293/org.briarproject I/QrCodeDecoder: Decoding barcode took 178 ms
04-04 16:39:02.229 2133-2133/org.briarproject I/ShowQrCodeFragment: Got result from decoder
04-04 16:39:02.229 2133-2133/org.briarproject I/ShowQrCodeFragment: Releasing camera
04-04 16:39:02.559 2133-2133/org.briarproject I/CameraView: Surface destroyed
04-04 16:39:02.579 2133-12385/org.briarproject I/KeyAgreementConnector: Starting outgoing BQP connections
04-04 16:39:02.579 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to key agreement UUID 9b9de3f9-dcf4-3eb1-a134-4db19a63cb74
04-04 16:39:02.579 2133-11870/org.briarproject I/InsecureBluetooth: Creating socket with new API
04-04 16:39:02.579 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to 64:A7:69:F6:98:D1
04-04 16:39:02.589 2133-12385/org.briarproject I/KeyAgreementConnector: Stopping BQP listeners
04-04 16:39:02.589 2133-12385/org.briarproject I/KeyAgreementConnector: Cancelled task
04-04 16:39:02.589 2133-12385/org.briarproject I/KeyAgreementTaskImpl: Starting BQP protocol
04-04 16:39:02.599 2133-11870/org.briarproject I/DroidtoothPlugin: Failed to connect to 64:A7:69:F6:98:D1
04-04 16:39:04.299 2133-12385/org.briarproject I/Sec1KeyParser: Parsing public key took 1705 ms
04-04 16:39:04.679 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to key agreement UUID 9b9de3f9-dcf4-3eb1-a134-4db19a63cb74
04-04 16:39:04.679 2133-11870/org.briarproject I/InsecureBluetooth: Creating socket with new API
04-04 16:39:04.679 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to 64:A7:69:F6:98:D1
04-04 16:39:04.839 2133-11870/org.briarproject I/DroidtoothPlugin: Failed to connect to 64:A7:69:F6:98:D1
04-04 16:39:06.839 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to key agreement UUID 9b9de3f9-dcf4-3eb1-a134-4db19a63cb74
04-04 16:39:06.839 2133-11870/org.briarproject I/InsecureBluetooth: Creating socket with new API
04-04 16:39:06.839 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to 64:A7:69:F6:98:D1
04-04 16:39:07.059 2133-11870/org.briarproject I/DroidtoothPlugin: Failed to connect to 64:A7:69:F6:98:D1
04-04 16:39:07.169 2133-12385/org.briarproject I/CryptoComponentImpl: Deriving shared secret took 2869 ms
04-04 16:39:07.199 2133-12385/org.briarproject I/KeyAgreementTaskImpl: Finished BQP protocol
04-04 16:39:09.059 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to key agreement UUID 9b9de3f9-dcf4-3eb1-a134-4db19a63cb74
04-04 16:39:09.059 2133-11870/org.briarproject I/InsecureBluetooth: Creating socket with new API
04-04 16:39:09.059 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to 64:A7:69:F6:98:D1
04-04 16:39:09.179 2133-11870/org.briarproject I/DroidtoothPlugin: Failed to connect to 64:A7:69:F6:98:D1
```
The connection attempts continued every 2 seconds, indefinitely:
```
04-04 16:42:19.949 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to key agreement UUID 9b9de3f9-dcf4-3eb1-a134-4db19a63cb74
04-04 16:42:19.949 2133-11870/org.briarproject I/InsecureBluetooth: Creating socket with new API
04-04 16:42:19.949 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to 64:A7:69:F6:98:D1
04-04 16:42:20.119 2133-11870/org.briarproject I/DroidtoothPlugin: Failed to connect to 64:A7:69:F6:98:D1
```
Manually disabling Bluetooth finally killed the task:
```
04-04 16:44:26.599 2133-2133/org.briarproject I/DroidtoothPlugin: Scan mode: None
04-04 16:44:26.619 2133-2133/org.briarproject I/DroidtoothPlugin: Scan mode: None
04-04 16:44:28.489 2133-2133/org.briarproject I/DroidtoothPlugin: Bluetooth disabled
04-04 16:44:28.489 2133-11695/org.briarproject I/DroidtoothPlugin: java.io.IOException: Operation Canceled
```Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/346Some cameras can't focus on QR codes2023-06-08T12:13:45ZakwizgranSome cameras can't focus on QR codesSome testers found that their cameras couldn't focus on QR codes. This has also been an issue on some test devices:
* Sony Xperia Tipo
* Huawei Ascend Y520
* Huawei Ascend Y330
All of these devices have fixed-focus cameras. The s...Some testers found that their cameras couldn't focus on QR codes. This has also been an issue on some test devices:
* Sony Xperia Tipo
* Huawei Ascend Y520
* Huawei Ascend Y330
All of these devices have fixed-focus cameras. The size and resolution of the screen being scanned, and the resolution of the camera's preview image, may also be relevant. Scanning a small, low-resolution screen using a low-resolution, fixed-focus camera seems to be the hardest case (e.g. scanning the HTC Wildfire S using the Sony Xperia Tipo).
@ernir reported that the testers' devices were able to scan QR codes when using the zxing app - we should investigate what it's doing differently.Android Beta 2https://code.briarproject.org/briar/briar/-/issues/268Research how to deal with doze mode on Android 62019-02-21T10:34:00ZakwizgranResearch how to deal with doze mode on Android 6Android 6 has a new doze mode when the device is idle. Apps can't access the network in doze mode, except during short wakeup periods. This will kill our ability to receive messages while the device is idle. The recommended workaround is...Android 6 has a new doze mode when the device is idle. Apps can't access the network in doze mode, except during short wakeup periods. This will kill our ability to receive messages while the device is idle. The recommended workaround is to use Google Cloud Messaging, which obviously won't work for us.
We may need to prompt the user to add Briar to a whitelist. Thanks Google! Love ya!
http://developer.android.com/training/monitoring-device-state/doze-standby.htmlAndroid 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/343Explain why password is too weak2018-06-11T10:15:17ZakwizgranExplain why password is too weakTesters wanted to know the minimum requirements for passwords. If the user's password is too weak, explain why.
We could solve this by showing "password is too short" if it's below a minimum length, "password is too common" if it's on...Testers wanted to know the minimum requirements for passwords. If the user's password is too weak, explain why.
We could solve this by showing "password is too short" if it's below a minimum length, "password is too common" if it's on a blacklist of common passwords, or "password is too simple" if it's neither too short nor too common but the strength estimate is low due to insufficient variety of characters.https://code.briarproject.org/briar/briar/-/issues/264Re-Evaluate Build Expiration2018-06-11T10:14:03ZxavierRe-Evaluate Build Expirationafter some days my own build is showing this message and is blocked
"this software has expired
please install a newer version"
i understand you want dev or preusers update fast the software
but this is quite a strong way to push ...after some days my own build is showing this message and is blocked
"this software has expired
please install a newer version"
i understand you want dev or preusers update fast the software
but this is quite a strong way to push for it that to block the app completely
it look to much to a license expired message or a closed source software, which is not a good feeling
but maybe this is your own decision that i have just to accept :)https://code.briarproject.org/briar/briar/-/issues/259Connection refused when connecting to other clients via Tor2023-03-15T12:50:53ZTorsten GroteConnection refused when connecting to other clients via TorSince a few weeks my contacts seem to be unable to connect to each other via Tor. The following log is on current master `HEAD` with two contacts online and connected via the LAN Plugin.
```
I/TorPlugin: Hidden service [mine].onion
I/To...Since a few weeks my contacts seem to be unable to connect to each other via Tor. The following log is on current master `HEAD` with two contacts online and connected via the LAN Plugin.
```
I/TorPlugin: Hidden service [mine].onion
I/TorPlugin: OR connection LAUNCHED
I/TorPlugin: NOTICE Bootstrapped 85%: Finishing handshake with first hop
I/TorPlugin: NOTICE Bootstrapped 90%: Establishing a Tor circuit
I/TorPlugin: OR connection CONNECTED
I/TorPlugin: First circuit built
I/TorPlugin: NOTICE Tor has successfully opened a circuit. Looks like client functionality is working.
I/TorPlugin: NOTICE Bootstrapped 100%: Done
I/PollerImpl: Polling TorPlugin
I/TorPlugin: Connecting to [theirs].onion
I/TorPlugin: Could not connect to [theirs].onion: Connection refused
I/PollerImpl: Polling TorPlugin
I/TorPlugin: Connecting to [theirs].onion
I/TorPlugin: Could not connect to [theirs].onion: Connection refused
I/TorPlugin: Hidden service descriptor published
I/PollerImpl: Polling TorPlugin
I/TorPlugin: Connecting to [theirs].onion
I/TorPlugin: Could not connect to [theirs].onion: Connection refused
I/PollerImpl: Polling TorPlugin
I/TorPlugin: Could not connect to [theirs].onion: TTL expired
I/TorPlugin: NOTICE Tried for 120 seconds to get a connection to [scrubbed]:80. Giving up. (waiting for rendezvous desc)
I/PollerImpl: Polling TorPlugin
I/TorPlugin: Hidden service descriptor published, not polling
```https://code.briarproject.org/briar/briar/-/issues/1154Notification light not working on some Android versions2018-03-08T15:59:19ZakwizgranNotification light not working on some Android versionsA user asked for the notification light to be supported, which should already be the case. The user was using Briar 0.16.16 on Android 7.1.2, phone model unknown.
I tested the notification light on several Android versions and it works ...A user asked for the notification light to be supported, which should already be the case. The user was using Briar 0.16.16 on Android 7.1.2, phone model unknown.
I tested the notification light on several Android versions and it works as expected up to Android 6.0.1, but it doesn't work on Android 8.1. I don't have an Android 7 device for testing.Android Beta 2Torsten GroteTorsten Grotehttps://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)
```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/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/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/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/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.0akwizgranakwizgran