briar issueshttps://code.briarproject.org/briar/briar/-/issues2018-06-12T11:32:31Zhttps://code.briarproject.org/briar/briar/-/issues/276Introduction Client Tests2018-06-12T11:32:31ZTorsten GroteIntroduction Client TestsMilestone BTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/275Integration tests for message queue2018-06-12T11:32:31ZakwizgranIntegration tests for message queuehttps://code.briarproject.org/briar/briar/-/issues/274Code encapsulation techniques2018-06-12T11:32:31ZErnir ErlingssonCode encapsulation techniquesThis issue is a prerequisite of #255
Right now we aren't really using any code design patterns, e.g. MVC, MVP, in the briar-android module. There is hardly any encapsulation between logic, threading or UI and there are a lot of redund...This issue is a prerequisite of #255
Right now we aren't really using any code design patterns, e.g. MVC, MVP, in the briar-android module. There is hardly any encapsulation between logic, threading or UI and there are a lot of redundancies. Improve this by decoupling the logic and UI code, using dependency injections and inheritance if needed.Milestone Chttps://code.briarproject.org/briar/briar/-/issues/273Services should throw exceptions for startup errors2018-06-12T11:32:31ZakwizgranServices should throw exceptions for startup errors`Service#start()` returns true if the service started successfully. Services are always expected to start unless there's a fatal problem, so the interface should use an exception rather than a return value to indicate an error.`Service#start()` returns true if the service started successfully. Services are always expected to start unless there's a fatal problem, so the interface should use an exception rather than a return value to indicate an error.Milestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/272MessageQueue deleted messages2018-06-12T11:32:31ZTorsten GroteMessageQueue deleted messagesAlice is receiving a message via the MessageQueue:
```
03-21 18:03:19.825 I/MessageQueueManagerImpl: Received message with position 5, expecting 5
03-21 18:03:19.825 I/MessageQueueManagerImpl: Message is in order, delivering
```
Th...Alice is receiving a message via the MessageQueue:
```
03-21 18:03:19.825 I/MessageQueueManagerImpl: Received message with position 5, expecting 5
03-21 18:03:19.825 I/MessageQueueManagerImpl: Message is in order, delivering
```
Then a new message is sent by Bob:
```
03-21 18:05:35.971 I/MessageQueueManagerImpl: Sending message with position 6
```
But Alice does not get the message, because the MessageQueue is deleting it:
```
03-21 18:05:36.605 I/MessageQueueManagerImpl: Received message with position 5, expecting 6
03-21 18:05:36.605 W/MessageQueueManagerImpl: Deleting message with duplicate position
```
Bob sends another message:
```
03-21 18:05:50.484 I/MessageQueueManagerImpl: Sending message with position 7
```
This time, Alice gets it, but it still comes in with the wrong position.
```
03-21 18:05:50.775 I/MessageQueueManagerImpl: Received message with position 6, expecting 6
03-21 18:05:50.775 I/MessageQueueManagerImpl: Message is in order, delivering
```Milestone Bakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/271Port the splash screen and create forum activities to XML layout2018-06-12T11:32:32ZSantiago Torres-AriasPort the splash screen and create forum activities to XML layoutThis is a subtask of issue #53 This is a subtask of issue #53 Milestone CSantiago Torres-AriasSantiago Torres-Ariashttps://code.briarproject.org/briar/briar/-/issues/270Briar restarts after signing out2018-06-12T11:32:32ZakwizgranBriar restarts after signing outSince merging the Dagger branch, the splash screen and password screen reappear after I sign out.Since merging the Dagger branch, the splash screen and password screen reappear after I sign out.Milestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/269Race condition between adding contacts and adding transports2018-06-12T11:32:32ZakwizgranRace condition between adding contacts and adding transports`KeyManagerImpl#addContact()` runs synchronously whereas `KeyManagerImpl#addTransport()` runs asynchronously. If a transport is added and then a contact is added immediately afterwards, it's possible for the contact not to get any transp...`KeyManagerImpl#addContact()` runs synchronously whereas `KeyManagerImpl#addTransport()` runs asynchronously. If a transport is added and then a contact is added immediately afterwards, it's possible for the contact not to get any transport keys.
This is very unlikely to affect real users because transports are added early in the startup process, but it's causing SimplexTransportIntegrationTest to fail intermittently, and should be fixed anyway on principle.Milestone Bakwizgranakwizgranhttps://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/267Touching persistent notification doesn't bring app to foreground2020-11-21T19:28:40ZakwizgranTouching persistent notification doesn't bring app to foregroundThe persistent notification says 'Touch to show the dashboard' but touching it has no effect.The persistent notification says 'Touch to show the dashboard' but touching it has no effect.https://code.briarproject.org/briar/briar/-/issues/266Message queues2018-06-12T11:32:32ZakwizgranMessage queuesWrite a generic one-to-one message queue implementation that clients can use to exchange ordered messages with a contact.Write a generic one-to-one message queue implementation that clients can use to exchange ordered messages with a contact.Milestone Bakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/265Fuzzing tests for message validators2021-02-10T15:10:26ZakwizgranFuzzing tests for message validatorsUse fuzzing to ensure the message validators reject invalid messages without crashing. Record any messages that trigger crashes.
We can either look for a suitable fuzzing library or write our own fuzzer, starting from valid messages and...Use fuzzing to ensure the message validators reject invalid messages without crashing. Record any messages that trigger crashes.
We can either look for a suitable fuzzing library or write our own fuzzer, starting from valid messages and applying random mutations (delete/replace/repeat).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/263Deleting account does not delete Tor directory2018-06-12T11:32:32ZakwizgranDeleting account does not delete Tor directoryWhen the user's account is deleted via the password screen, the Tor directory isn't deleted. This is a serious problem as the Tor directory contains the private key for the hidden service. If the user creates a new account, the same hidd...When the user's account is deleted via the password screen, the Tor directory isn't deleted. This is a serious problem as the Tor directory contains the private key for the hidden service. If the user creates a new account, the same hidden service address is used.Milestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/262briar dos not try to reconnect by itself after connection loss2018-06-12T11:32:32Zxavierbriar dos not try to reconnect by itself after connection lossafter a loss of connection i have the feeling that briar is not trying so much to reconnect.
i have seen that several times.
briar shows all contacts offline
if i send a message to several contacts, it does not seems to try reinit c...after a loss of connection i have the feeling that briar is not trying so much to reconnect.
i have seen that several times.
briar shows all contacts offline
if i send a message to several contacts, it does not seems to try reinit connection
if i disconnect and reconnect mannually
then all contacts goes back online.
maybe sending messages to a offline client when most clients are offline shall make briar to reinit all connections.
this is more present on the 3g 4g networks.
on same wifi lan and bluetooth. i do no see that behaviorMilestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/261Add Other Means to Add Contacts2021-09-27T21:10:34ZxavierAdd Other Means to Add Contactsi like the p2p and secure concept of briar.
even if simpler on android, resource consumption is much more controlled than tox and so usable.
local contact addition by bluetooth only is a bit too strict.
i see the discussion about QR co...i like the p2p and secure concept of briar.
even if simpler on android, resource consumption is much more controlled than tox and so usable.
local contact addition by bluetooth only is a bit too strict.
i see the discussion about QR codes with direct exchange #117
but it seems it is also a direct contact
contact recommendation can be nice
but i would like a standard contact invitation by email, phone call, or sms.
i know this is less secure but for people we do not see regularly this is better than keeping with normal app.
maybe sharing an invitation key with any kind of prefered app is the easier thinghttps://code.briarproject.org/briar/briar/-/issues/260torbot unable to start when briar is on2018-06-12T11:32:32Zxaviertorbot unable to start when briar is onwhen briar is active on the wan then i cannot start torbot on the same device.
maybe it is something related to #259 when briar is active on the wan then i cannot start torbot on the same device.
maybe it is something related to #259 Milestone Cakwizgranakwizgranhttps://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/258Replace Timer with ScheduledExecutorService2018-06-12T11:32:32ZakwizgranReplace Timer with ScheduledExecutorServiceThe Timer implementation used by PollerImpl and TransportKeyManager is based on java.util.Timer, which is sensitive to changes in the system clock:
http://stackoverflow.com/questions/18803695/how-is-the-timer-class-in-java-sensitive-t...The Timer implementation used by PollerImpl and TransportKeyManager is based on java.util.Timer, which is sensitive to changes in the system clock:
http://stackoverflow.com/questions/18803695/how-is-the-timer-class-in-java-sensitive-to-the-system-clock
Replace it with an implementation based on ScheduledExecutorService.Milestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/257Consider offering user validation alternatives2019-04-10T10:39:39ZErnir ErlingssonConsider offering user validation alternativesCurrently we are only validating users with text strings but text input, on small mobile devices especially, is little fun and for that reason some users might choose comfortability, with a short password, over security. There are severa...Currently we are only validating users with text strings but text input, on small mobile devices especially, is little fun and for that reason some users might choose comfortability, with a short password, over security. There are several possibilities available to tackle this "problem":
**1. Offer more user validation possibilities besides using a password, e.g. use the device's fingerprint sensor**
if available. This will only work for one account though, if a user has multiple accounts we will need to offer some way for the user to define which account is using his fingerprint.
**2. Define access layers with different security restrictions**
This is much more tricky and maybe not desirable at all but I feel there is sufficient discussion merit nonetheless. Currently Briar employs a single access restriction on a per account basis, i.e. you either have access to everything (for the respective account) or nothing depending on your knowledge of the password.
Another approach would be to have multiple access levels, e.g. you enter the app with a four digit pin that gives you access to the app but in order to communicate with extra-secure users (this could be marked when contacts are added) you must first confirm your password on a session basis. Here we would need to make sure that the security restriction on the communication between contacts A and B would be identical, i.e. both parties would be required to confirm the passwords in order to communicate.Android 1.1