briar issueshttps://code.briarproject.org/groups/briar/-/issues2023-02-01T14:11:02Zhttps://code.briarproject.org/briar/briar-desktop/-/issues/163Consider offloading avatar loading to the IoExecutor2023-02-01T14:11:02ZSebastianConsider offloading avatar loading to the IoExecutorCurrently we load avatar images on the db thread, maybe that's not optimalCurrently we load avatar images on the db thread, maybe that's not optimalhttps://code.briarproject.org/briar/briar-desktop/-/issues/480Add window border to automatically created screenshots2023-02-01T17:02:51ZSebastianAdd window border to automatically created screenshotshttps://code.briarproject.org/briar/briar-desktop/-/issues/481Move interactive tests into new source tree2023-02-01T17:04:42ZSebastianMove interactive tests into new source treeSimilar to what we did for automated screenshots: !256, see https://code.briarproject.org/briar/briar-desktop/-/merge_requests/256#note_72788Similar to what we did for automated screenshots: !256, see https://code.briarproject.org/briar/briar-desktop/-/merge_requests/256#note_72788https://code.briarproject.org/briar/briar-desktop/-/issues/397Enforce Twitter Jetpack Compose Rules using ktlint2023-02-02T22:38:06ZMikolai GütschowEnforce Twitter Jetpack Compose Rules using ktlintfound by @grote: https://twitter.github.io/compose-rules/found by @grote: https://twitter.github.io/compose-rules/https://code.briarproject.org/briar/briar-desktop/-/issues/402Deterministic test data with sent and received message state2023-02-05T22:31:15ZSebastianDeterministic test data with sent and received message stateIn order for messages to appear as received and read, I currently do this:``
```diff
index fc66a39..ee38a90 100644
--- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationItemView.kt
+++ b/briar-deskt...In order for messages to appear as received and read, I currently do this:``
```diff
index fc66a39..ee38a90 100644
--- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationItemView.kt
+++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationItemView.kt
@@ -38,7 +38,6 @@ import androidx.compose.material.Text
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Done
import androidx.compose.material.icons.filled.DoneAll
-import androidx.compose.material.icons.filled.Schedule
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@@ -234,7 +233,7 @@ fun ColumnScope.ConversationItemStatusView(item: ConversationItem, rowModifier:
val icon =
if (item.isSeen) Icons.Filled.DoneAll // acknowledged
else if (item.isSent) Icons.Filled.Done // sent
- else Icons.Filled.Schedule // waiting
+ else Icons.Filled.DoneAll // waiting
Icon(icon, i18n("access.message.sent"), modifier, statusColor)
}
}
```
I think in the long term, it would be nice if the test data creator could just set those flags to values that we like for such purposes via the DSL.https://code.briarproject.org/briar/briar/-/issues/1747Use custom PIN for app lock2023-02-06T14:57:18ZakwizgranUse custom PIN for app lockA user asked to be able to set an app lock PIN that's different from the PIN they use to unlock their phone.A user asked to be able to set an app lock PIN that's different from the PIN they use to unlock their phone.https://code.briarproject.org/briar/briar/-/issues/513Verify unverified contacts2023-02-07T08:56:41ZakwizgranVerify unverified contactsContacts who are added via introductions (or via long-distance transports, if we decide to support that) are considered "unverified" due to the possibility of a man-in-the-middle attack against the key exchange protocol. Contacts who are...Contacts who are added via introductions (or via long-distance transports, if we decide to support that) are considered "unverified" due to the possibility of a man-in-the-middle attack against the key exchange protocol. Contacts who are added face-to-face are considered "verified".
Design and implement a protocol and UI for verifying the identity of a previously unverified contact when the user meets the contact face-to-face.https://code.briarproject.org/briar/briar-manual/-/issues/11Add info about verification status of contacts2023-02-07T10:09:28ZBirgerAdd info about verification status of contactsThe manual currently does not provide information about the verification status of contacts. Some figures are apparently outdated and do not show the verification status of contacts as used by the app now. Also, the manual should explain...The manual currently does not provide information about the verification status of contacts. Some figures are apparently outdated and do not show the verification status of contacts as used by the app now. Also, the manual should explain the difference between verified and unverified contacts.https://code.briarproject.org/briar/briar/-/issues/2413Show verification status of contacts when inviting them to a forum2023-02-07T10:14:37ZBirgerShow verification status of contacts when inviting them to a forumThe dialog for inviting contacts to a forum currently does not show their verification status (verified/unverified contact). In some cases I might only want to invite verified contacts to a forum. Therefore, the verification status shoul...The dialog for inviting contacts to a forum currently does not show their verification status (verified/unverified contact). In some cases I might only want to invite verified contacts to a forum. Therefore, the verification status should be shown in the contact list when selecting contacts to invite to a forum.https://code.briarproject.org/briar/briar-manual/-/issues/12Add more detailed info about the differences between private group and forum2023-02-07T10:41:42ZBirgerAdd more detailed info about the differences between private group and forumOne important aspect of Briar is that apparently in a private group all communication flow goes through the creator's device, which can significantly delay communication.
Example: If a group has three members (Alice, Bob, Creator) the f...One important aspect of Briar is that apparently in a private group all communication flow goes through the creator's device, which can significantly delay communication.
Example: If a group has three members (Alice, Bob, Creator) the following appears to be the case: Alice posts a message to the group. The message is sent from Alice's device to Creator's device only when the devices are within Wifi or Bluetooth range or simultaneously have contact to the internet. The message is then forwarded from Creator's device to Bob's device only when these two devices are within Wifi or bluetooth range or simultaneously have contact to the internet. If Creator is out of range or away from the internet for an extended time, communication between Alice and Bob is not possible and they will be confused why their messages don't arrive.
Forums are "faster", as messages can also be exchanged between forum members' devices without going through Creator's device.
This info should be available in the manual.
Of course, communication delay of both private groups and forums will likely be reduced in the future if the mailbox function is used.https://code.briarproject.org/briar/briar/-/issues/1282Briar loses Tor connectivity when Orbot's VPN mode is activated2023-02-07T15:11:21ZakwizgranBriar loses Tor connectivity when Orbot's VPN mode is activatedTurning on Orbot's VPN mode causes Briar to lose Tor connections to contacts, but the Tor transport is still shown as active. When VPN mode is turned off, connections to contacts are re-established.Turning on Orbot's VPN mode causes Briar to lose Tor connections to contacts, but the Tor transport is still shown as active. When VPN mode is turned off, connections to contacts are re-established.https://code.briarproject.org/briar/briar/-/issues/2359Reduce traffic activity by sending BSP VERSIONS Records less often2023-02-07T15:54:53ZThomasReduce traffic activity by sending BSP VERSIONS Records less oftenI am working on a PoC for a LoRa Transport. Even with all messages and acknowledges being exchanged, I see Traffic every X seconds. From a BSP perspective this is being sent: `00 04 00 01 00`
Its basically saying: This is protocol versio...I am working on a PoC for a LoRa Transport. Even with all messages and acknowledges being exchanged, I see Traffic every X seconds. From a BSP perspective this is being sent: `00 04 00 01 00`
Its basically saying: This is protocol version 0, I am supporting only protocol version 0.
I get this same message every X seconds. Yes, the traffic is encrypted (randomized), still I think this makes the traffic easier to categorize using timing-attacks and it takes bandwidth.
I argue this should only be sent:
- during contact exchange
- if it changed and the other contact hasn't acknowledged the change or sent BSP Frames themselves with the new version
Ideally the old Version is still valid and the change doesn't have to be propagated by creating new Streams - the client can transmit it once before it sends another BSP Packet.
This mainly affects Simplex Connections (https://code.briarproject.org/briar/briar/-/blob/master/bramble-core/src/main/java/org/briarproject/bramble/sync/SimplexOutgoingSession.java#L95). It could also be changes on Duplex Connections (https://code.briarproject.org/briar/briar/-/blob/master/bramble-core/src/main/java/org/briarproject/bramble/sync/DuplexOutgoingSession.java#L136) but I don't know the real-life impact there since it won't be regularly re-sent on established connections.
My workaround for the PoC will be to just comment-out this specific line of code.https://code.briarproject.org/briar/briar/-/issues/1742Using LoRa frequencies to leverage the reach of briar2023-02-09T00:29:56ZsysterUsing LoRa frequencies to leverage the reach of briar### issue:
Briar is great, but the limitation of bluetooth/wifi for offline meshnet communcation is decreasing its usability.
Example, protest:
When you start using briar, maybe only your friends have it. So the meshnent is rather sma...### issue:
Briar is great, but the limitation of bluetooth/wifi for offline meshnet communcation is decreasing its usability.
Example, protest:
When you start using briar, maybe only your friends have it. So the meshnent is rather small that you will build from it.
The circumstances may require your group to be at different positions (to report movements of adversaries, to do medic support, to hand out leaflets...)
Internet is down. That would be the perfect moment to use briar. But you can't, because the requirements for your group organization is to be further away from each other then Bluetooth can reach. There is no "out-of-the-box-solution" to use briar for this case.
Encrypted walkie-talkies is what people use instead. Issue with that (no meshnet, no wide adoption, relatively expansive)
### example of possibilities:
leveraging the signal from bluethooth/wifi with LoRa (long range) frequencies.
![meshtastic](/uploads/17a4c876056b221f63c418c74f9522d7/meshtastic.png)
A video that presents a **prototype of such technique** (they don't use briar but https://www.meshtastic.org/) **worth to watch**: https://invidious.snopyta.org/watch?v=TY6m6fS8bxUhttps://code.briarproject.org/briar/briar-desktop/-/issues/164Investigate reproducibility of current toolchain2023-02-10T19:27:52ZMikolai GütschowInvestigate reproducibility of current toolchaine.g. by looking at nightly buildse.g. by looking at nightly buildshttps://code.briarproject.org/briar/briar-spec/-/issues/19Provide test cases as part of specification2023-02-14T22:34:30ZNicoProvide test cases as part of specificationWhen implementing Briar from the specifications in this project, test cases could be useful that allow developers to confirm that their implementations do what they are supposed to do. Some examples:
* given some briar:// link, confirm t...When implementing Briar from the specifications in this project, test cases could be useful that allow developers to confirm that their implementations do what they are supposed to do. Some examples:
* given some briar:// link, confirm that the right byte array including key and version is decoded
* given some public key (as byte array), confirm that the right briar:// link is generated
* given two briar:// links (and one of their private keys), confirm that the correct Tor Hidden Service .onion addresses are derived as part of BRP
I vaguely remember that test cases like those exist for other protocols or specifications. However, I'm not sure if the specifications are the right place to provide them or if there should rather be some sort of "test suite" that allows to test implementations regardless of their programming language.
As part of this issue, I'll link to places where tests like this are done in either briar-java or briar-rust.
### briar-java
* [KeyAgreementTest](https://code.briarproject.org/briar/briar/-/blob/release-1.4.20/bramble-core/src/test/java/org/briarproject/bramble/crypto/KeyAgreementTest.java)
### briar-rust
### References
* [Test vector in Elliptic Curve RFC 7748](https://www.rfc-editor.org/rfc/rfc7748#section-6.1)https://code.briarproject.org/briar/briar-desktop/-/issues/488Consider adding "X-GNOME-UsesNotifications=true" to desktop file2023-02-17T18:01:49ZSebastianConsider adding "X-GNOME-UsesNotifications=true" to desktop fileSee https://matrix.to/#/!RfXaBjokqHAbzZrgHz:matrix.org/$Xm7xnquFI5NTtTJzMCVk6chyqwoRTFcoqTah9wdXG1U?via=matrix.org&via=gnome.org&via=kde.org
and search the web for "X-GNOME-UsesNotifications=true".See https://matrix.to/#/!RfXaBjokqHAbzZrgHz:matrix.org/$Xm7xnquFI5NTtTJzMCVk6chyqwoRTFcoqTah9wdXG1U?via=matrix.org&via=gnome.org&via=kde.org
and search the web for "X-GNOME-UsesNotifications=true".https://code.briarproject.org/briar/briar-desktop/-/issues/490Increase maximum size for images on hidpi devices2023-02-18T14:12:30ZSebastianIncrease maximum size for images on hidpi deviceshttps://code.briarproject.org/briar/briar-desktop/-/issues/487Send notifications directly through dbus instead of using libnotify?2023-02-21T11:27:37ZAminda SuomalainenSend notifications directly through dbus instead of using libnotify?I have been [wondering](https://github.com/flathub/org.briarproject.Briar/pull/15) about [Briar Desktop flatpak not supporting notifications](https://github.com/flathub/org.briarproject.Briar/issues/11) as the flatpak is missing libnotif...I have been [wondering](https://github.com/flathub/org.briarproject.Briar/pull/15) about [Briar Desktop flatpak not supporting notifications](https://github.com/flathub/org.briarproject.Briar/issues/11) as the flatpak is missing libnotify and ended up asking Flatpak's Matrix room [whom I understand to be questioning Briar Desktop's approach](https://matrix.to/#/%23flatpak%3Amatrix.org/%24_Vpe0BaMtKK6lhUsCoiyH3v9XDUqvR24PrciWRJeW9Y?via=pikaviestin.fi&via=matrix.org&via=knot.im&via=envs.net) and that the easiest solution would be sending notifications through dbus instead of using libnotify.
Trying to find more information about this, I found a blog post [Sending desktop notification in Linux with Python with D-Bus directly](https://pychao.com/2021/03/01/sending-desktop-notification-in-linux-with-python-with-d-bus-directly/) (I know Briar Desktop isn'ẗ Python) and [Desktop Notifications Specification](https://specifications.freedesktop.org/notification-spec/notification-spec-latest.html).
I am far beyond my abilities and opening this issue in hopes of it helping resolve missing notifications in the flatpak.https://code.briarproject.org/briar/briar-desktop/-/issues/491Settings screen should be scrollable2023-02-22T11:30:59ZSebastianSettings screen should be scrollableI noticed while testing !226 with a maximum UI scale factor and without the minimum size of the window being reset, that the settings screen gets cramped towards the lower end. Making it scrollable is probably a good idea anyway.I noticed while testing !226 with a maximum UI scale factor and without the minimum size of the window being reset, that the settings screen gets cramped towards the lower end. Making it scrollable is probably a good idea anyway.https://code.briarproject.org/briar/briar/-/issues/1231Design protocol for adding contacts remotely2023-02-22T18:15:44ZakwizgranDesign protocol for adding contacts remotelySubtask of #1230.Subtask of #1230.akwizgranakwizgran