briar issueshttps://code.briarproject.org/briar/briar/-/issues2021-12-09T00:18:37Zhttps://code.briarproject.org/briar/briar/-/issues/187Implement I2P plugin2021-12-09T00:18:37Zstr4dImplement I2P plugin@akwizgran expressed a keen interest in this happening eventually. The basic idea is to add I2P as a transport, so that contacts can choose to communicate over I2P if they wish. It should be similar to the Tor plugin, and will probably b...@akwizgran expressed a keen interest in this happening eventually. The basic idea is to add I2P as a transport, so that contacts can choose to communicate over I2P if they wish. It should be similar to the Tor plugin, and will probably be easier to implement (because I2P has a native Java API).https://code.briarproject.org/briar/briar/-/issues/445iOS and iPhone2023-03-28T12:51:28ZSimó Albert i BeltraniOS and iPhoneUnfortunatelly I know iPhone users :(
Could they run Briar?Unfortunatelly I know iPhone users :(
Could they run Briar?https://code.briarproject.org/briar/briar/-/issues/1201Trust indicator in conversation view2022-11-18T16:46:06ZakwizgranTrust indicator in conversation viewA user asked for trust indicators to be shown in the conversation view.
"It might also be useful to show some sort of security information to be able to check that we are talking directly to who we think we are without a man in the midd...A user asked for trust indicators to be shown in the conversation view.
"It might also be useful to show some sort of security information to be able to check that we are talking directly to who we think we are without a man in the middle."https://code.briarproject.org/briar/briar/-/issues/1027Titles for blog posts2020-11-19T13:49:41ZakwizgranTitles for blog postsA tester asked for the ability to add a title to a blog post.A tester asked for the ability to add a title to a blog post.https://code.briarproject.org/briar/briar/-/issues/1285Support OPML feeds2020-11-18T02:31:16ZakwizgranSupport OPML feedsA user asked for the ability to import OPML feeds as well as RSS. It looks like ROME has a module for OPML: http://rometools.github.io/rome-opml/A user asked for the ability to import OPML feeds as well as RSS. It looks like ROME has a module for OPML: http://rometools.github.io/rome-opml/https://code.briarproject.org/briar/briar/-/issues/706Migrate crypto to libsodium2020-11-21T16:39:44ZakwizgranMigrate crypto to libsodiumUsing libsodium via JNI would give us constant-time implementations of Curve25519 and Ed25519 (see #236) and a fast implementation of Argon2 (see #170). Our crypto_secretbox implementation could be replaced, and we could use crypto_box i...Using libsodium via JNI would give us constant-time implementations of Curve25519 and Ed25519 (see #236) and a fast implementation of Argon2 (see #170). Our crypto_secretbox implementation could be replaced, and we could use crypto_box instead of ECIES for crash reports and feedback. BLAKE2s would remain in Java (libsodium only has BLAKE2b). If we replaced the Fortuna generator with libsodium's RNG, we could get rid of Bouncy Castle.
https://github.com/joshjdevl/libsodium-jnihttps://code.briarproject.org/briar/briar/-/issues/59Traffic analysis prevention layer2022-11-01T14:51:18ZakwizgranTraffic analysis prevention layerThe traffic analysis prevention (TAP) layer is responsible for preventing an observer from determining the volume and timing of data carried by a BTP stream.
What should the interfaces between BTP, TAP and the transport plugin look like...The traffic analysis prevention (TAP) layer is responsible for preventing an observer from determining the volume and timing of data carried by a BTP stream.
What should the interfaces between BTP, TAP and the transport plugin look like? Does the plugin need to be able to ask for a specific stream length, other than setting an upper bound? Are there any transports for which sending data as quickly as possible is preferable (from a TAP point of view) to sending it at a limited rate?
The TAP layer could adjust the transmission rate, increasing it if there's data waiting and decreasing it if not. What could the adversary learn by observing changes in the transmission rate and/or manipulating congestion?
Padding could be handled at the BTP layer by choosing a padding multiplier for each stream. The TAP layer would then sit between BTP and the transport and handle chopping and delaying the stream -- that is, segmenting the encrypted, padded stream according to some segment size distribution, and writing segments to the transport according to some inter-segment delay distribution.
The padding, size and delay distributions can be used to produce a characteristic traffic 'shape' for each device or pair of devices:
http://www.cs.kau.se/philwint/pdf/wpes2013.pdf
We can conceal traffic bursts by throttling the output of the TAP layer so that bursts are smoothed out. However, we should make good use of intermittently available transports -- if we send too slowly, the transport connection may be lost before we finish.https://code.briarproject.org/briar/briar/-/issues/1736Investigate whether library desugaring in Android Studio 4 allows us to upgra...2020-11-15T15:49:34ZakwizgranInvestigate whether library desugaring in Android Studio 4 allows us to upgrade any dependenciesAndroid Studio 4 adds support for certain Java 8+ APIs that aren't natively supported on older versions of Android, which has prevented us from upgrading certain dependencies (eg newer versions of H2 require ThreadLocalRandom). Find out ...Android Studio 4 adds support for certain Java 8+ APIs that aren't natively supported on older versions of Android, which has prevented us from upgrading certain dependencies (eg newer versions of H2 require ThreadLocalRandom). Find out whether upgrading to AS 4 would allow us to upgrade any dependencies.https://code.briarproject.org/briar/briar/-/issues/1690Add private message deletion to user manual2020-11-15T17:10:49ZakwizgranAdd private message deletion to user manualCleopatraCleopatrahttps://code.briarproject.org/briar/briar/-/issues/1337Scroll to bottom when writing new post in private group2020-11-18T01:46:13ZakwizgranScroll to bottom when writing new post in private groupUser feedback: "In private conversations, when you tap the text bar to begin typing and it expands, the message history lifts up as well so that you are still seeing the most recent message above what you are typing. In groups, that is n...User feedback: "In private conversations, when you tap the text bar to begin typing and it expands, the message history lifts up as well so that you are still seeing the most recent message above what you are typing. In groups, that is not the case. When the typing bar expands, it covers the most recent messages and you have to scroll down to see them. I find the behavior in the private conversations more convenient."https://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/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/1101Research whether NotificationCleanupService needs to be migrated to JobIntent...2020-11-19T13:24:10ZakwizgranResearch whether NotificationCleanupService needs to be migrated to JobIntentServiceNotificationCleanupService extends IntentService, which may not work properly on Android 8 [according to the docs](https://developer.android.com/about/versions/oreo/background.html). Find out whether the changes apply to us. If so, upgra...NotificationCleanupService extends IntentService, which may not work properly on Android 8 [according to the docs](https://developer.android.com/about/versions/oreo/background.html). Find out whether the changes apply to us. If so, upgrade the support library to version 26 and migrate NotificationCleanupService to JobIntentService.https://code.briarproject.org/briar/briar/-/issues/1072Reply to messages from the notification2020-11-19T13:12:06ZakwizgranReply to messages from the notificationUser feedback: "Another complaint I hear is that my friends can't reply from the notification. I work with a lot of multitaskers."User feedback: "Another complaint I hear is that my friends can't reply from the notification. I work with a lot of multitaskers."https://code.briarproject.org/briar/briar/-/issues/1067Don't show two notifications when a member joins a group2020-11-19T13:34:07ZakwizgranDon't show two notifications when a member joins a groupUser feedback: "A user that joins a group will cause two notifications on the group owner's device: One in the private chat and one in the group chat. There probably should only be one."User feedback: "A user that joins a group will cause two notifications on the group owner's device: One in the private chat and one in the group chat. There probably should only be one."https://code.briarproject.org/briar/briar/-/issues/991Opening private conversation with new contact should hide new contact notific...2020-11-19T14:50:44ZakwizgranOpening private conversation with new contact should hide new contact notificationThe new contact notification that's shown when a contact is introduced should be hidden when opening the contact's private conversation. Touching the notification should open the contact's private conversation.
If multiple contacts have...The new contact notification that's shown when a contact is introduced should be hidden when opening the contact's private conversation. Touching the notification should open the contact's private conversation.
If multiple contacts have been introduced, each contact should be removed from the notification when opening the contact's private conversation, and touching a notification for multiple new contacts should open the contact list. (This is consistent with the behaviour of the private message notification.)https://code.briarproject.org/briar/briar/-/issues/975Load group item perspective before creating the Items2020-11-19T15:06:22ZJulian DehmLoad group item perspective before creating the ItemsCurrently, the perspective/creator of a group is loaded concurrently with the items. If the items are loaded before the creator, the perspective will be displayed wrongly (race condition).
Quote from @grote
>If I remember correctly, i...Currently, the perspective/creator of a group is loaded concurrently with the items. If the items are loaded before the creator, the perspective will be displayed wrongly (race condition).
Quote from @grote
>If I remember correctly, it would be better to change things so the perspective for the messages is known before they are created and then it can be passed to the message constructor instead of dynamically changing the adapter. Since this code is shared with forums, it might not be a trivial change though.
(see !532 for the initial discussion)https://code.briarproject.org/briar/briar/-/issues/952Use external IP address in LocationUtils if available2020-11-19T15:17:31ZakwizgranUse external IP address in LocationUtils if availableIf we can discover a routable IP address from a network interface then we can look it up in Tor's GeoIP library and use that as one of the sources to determine whether Tor's likely to be blocked in our current location.If we can discover a routable IP address from a network interface then we can look it up in Tor's GeoIP library and use that as one of the sources to determine whether Tor's likely to be blocked in our current location.https://code.briarproject.org/briar/briar/-/issues/944WiFi Transport layer dead when device has been offline for long2020-11-19T15:20:50ZErnir ErlingssonWiFi Transport layer dead when device has been offline for longBriar was running for two days in flight mode but failed to connect when device internet connectivity was restored per WiFi. I failed to check other transports due to a crash ~~that I'm still investigating, it might be that Briar's stabi...Briar was running for two days in flight mode but failed to connect when device internet connectivity was restored per WiFi. I failed to check other transports due to a crash ~~that I'm still investigating, it might be that Briar's stability was compromised.~~
Edit: Unrelated crash due to an error in my save/restore branchhttps://code.briarproject.org/briar/briar/-/issues/921Contact seemed to remain online after phone was reused2020-11-19T15:25:24ZakwizgranContact seemed to remain online after phone was reusedThis issue arose in user testing when one of the devices was reused by another tester.
User A with device X and user B with device Y added each other as contacts. Then user C took over device Y and created a new account. User A continue...This issue arose in user testing when one of the devices was reused by another tester.
User A with device X and user B with device Y added each other as contacts. Then user C took over device Y and created a new account. User A continued to see user B as online.
This may have been caused by a Bluetooth channel remaining open between the devices, causing user A to think that a connection to user B was still open. Perhaps a subsequent connection between user A and user C either reused the channel or otherwise caused it to remain open rather than timing out, or perhaps the Bluetooth stack on device X simply doesn't time out connections in a reasonable time.
If any of those speculations are right, we should work out how to avoid relying on Bluetooth to time out the connection and time out after a reasonable time in the Bramble stack instead.
We should also check that Bluetooth connections are being disposed of properly when they're closed.