briar issueshttps://code.briarproject.org/briar/briar/-/issues2021-05-05T16:17:22Zhttps://code.briarproject.org/briar/briar/-/issues/1834Automatically decline incoming introduction requests when they self-destruct2021-05-05T16:17:22ZakwizgranAutomatically decline incoming introduction requests when they self-destructWhen an incoming introduction request self-destructs without being answered, automatically decline the request. This may require a protocol update (coordinated with #1829) to flag the decline as an automatic response that shouldn't be sh...When an incoming introduction request self-destructs without being answered, automatically decline the request. This may require a protocol update (coordinated with #1829) to flag the decline as an automatic response that shouldn't be shown in the UI.
Subtask of #804
Test instructions:
* Use three devices, users A, B and C
* Enable self-destructing messages in the conversations A-B and A-C
* Let A introduce contacts B and C
* Expect invitation messages to arrive at B and C about the invitation
* Expect the invitation messages to have a auto-delete timers
* Let those timers expire. Expect that to trigger an automatic decline of the invitation, i.e. on all three devices it is visible that the introduction failed (due to the expired response)
* Expect all messages from that interaction to destroy after each message's timer expires
* Let A introduce B and C again. Expect this *not* to fail due to an introduction that is already going on (because none should be going on any longer)
* Let B and C accept the introduction
* Expect the introduction to work
* Confirm that B and C have each other in the contact list
* Expect all messages involved in the transaction to have auto-delete timers
* Let those timers expire and expect all those messages to disappearSelf-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1833Delete messages when their self-destruct timers expire2021-03-11T12:25:31ZakwizgranDelete messages when their self-destruct timers expireCreate a component that tracks pending self-destruct timers and deletes messages when their self-destruct timers expire.
Conversation clients will register messages for deletion during delivery. The new component will be responsible for...Create a component that tracks pending self-destruct timers and deletes messages when their self-destruct timers expire.
Conversation clients will register messages for deletion during delivery. The new component will be responsible for calling back into the client when a message is due to be deleted. This will allow the client to take any necessary steps before deletion, such as declining an open introduction.
Subtask of #804Self-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1832Store self-destruct timer duration2020-12-16T12:58:10ZakwizgranStore self-destruct timer durationFor each contact, store the local timer duration for self-destructing messages and the time when it was updated. When a message is received from the contact with a different timer duration and higher timestamp, update the local timer dur...For each contact, store the local timer duration for self-destructing messages and the time when it was updated. When a message is received from the contact with a different timer duration and higher timestamp, update the local timer duration. There should also be methods for setting the duration manually and querying the duration when sending a message.
Subtask of #804Self-destructing messagesakwizgranakwizgran2021-01-31https://code.briarproject.org/briar/briar/-/issues/1831Update private group sharing client to include a self-destruct timer in each ...2020-11-30T12:45:14ZakwizgranUpdate private group sharing client to include a self-destruct timer in each messageSubtask of #804Subtask of #804Self-destructing messagesakwizgranakwizgran2021-01-31https://code.briarproject.org/briar/briar/-/issues/1830Update blog and forum sharing clients to include a self-destruct timer in eac...2020-11-30T12:45:14ZakwizgranUpdate blog and forum sharing clients to include a self-destruct timer in each messageSubtask of #804Subtask of #804Self-destructing messagesakwizgranakwizgran2021-01-31https://code.briarproject.org/briar/briar/-/issues/1829Update introduction client to include a self-destruct timer in each message2020-11-30T12:45:13ZakwizgranUpdate introduction client to include a self-destruct timer in each messageSubtask of #804Subtask of #804Self-destructing messagesakwizgranakwizgran2021-01-31https://code.briarproject.org/briar/briar/-/issues/1828Update messaging client to include a self-destruct timer in each message2020-11-30T12:45:13ZakwizgranUpdate messaging client to include a self-destruct timer in each messageSubtask of #804Subtask of #804Self-destructing messagesakwizgranakwizgran2021-01-31https://code.briarproject.org/briar/briar/-/issues/1827Raise target API level to 302021-05-05T16:08:09ZakwizgranRaise target API level to 30Adapt to changes in the Android platform2021-04-30https://code.briarproject.org/briar/briar/-/issues/1826Finish migrating SettingsFragment to ViewModel2021-04-01T13:22:18ZakwizgranFinish migrating SettingsFragment to ViewModelA ViewModel for Settings has been introduced in #214 ([`214-user-avatars`](https://code.briarproject.org/briar/briar/-/tree/214-user-avatars)). The rest of the non-UI logic should get migrated there and exposed via LiveData.
Subtask of ...A ViewModel for Settings has been introduced in #214 ([`214-user-avatars`](https://code.briarproject.org/briar/briar/-/tree/214-user-avatars)). The rest of the non-UI logic should get migrated there and exposed via LiveData.
Subtask of #1823.Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1825Unspecific 500 Server Error when adding already existing pending contact2021-05-05T16:15:44ZNicoUnspecific 500 Server Error when adding already existing pending contact@grote found https://code.briarproject.org/briar/python-briar-wrapper/-/issues/19 where he encountered problems when re-adding an already existing pending contact.
I tried to somehow handle those error in _briar_wrapper_, but the respon...@grote found https://code.briarproject.org/briar/python-briar-wrapper/-/issues/19 where he encountered problems when re-adding an already existing pending contact.
I tried to somehow handle those error in _briar_wrapper_, but the response by Briar Headless is always just `500: Internal server error`. I get this when adding a pending contact after
* it has already been added seconds before and the peer is offline
* it has already been added more than 4 days before (manually changed system time) and the peer was offline all the time
* the pending contact got already added days before and left the pending state
* the link is invalid (I think so, just changed some characters)
* and for sure there are more errors
The problem is that [in this line](https://code.briarproject.org/briar/briar/-/blob/01a146ba71743e3709bd6e56052558da95abfbed/briar-headless/src/main/java/org/briarproject/briar/headless/contact/ContactControllerImpl.kt#L96) `contactManager.addPendingContact` gets called without catching its exceptions. Looking [at its implementation](https://code.briarproject.org/briar/briar/-/blob/01a146ba71743e3709bd6e56052558da95abfbed/bramble-core/src/main/java/org/briarproject/bramble/contact/ContactManagerImpl.java#L136), there are at least `DbException, FormatException, GeneralSecurityException` that get thrown.NicoNicohttps://code.briarproject.org/briar/briar/-/issues/1824Adapt to power management restrictions2021-04-30T13:42:29ZakwizgranAdapt to power management restrictionsAdapt to changes in the Android platform2021-04-30https://code.briarproject.org/briar/briar/-/issues/1823ViewModel migration2021-07-06T09:59:04ZakwizgranViewModel migrationhttps://code.briarproject.org/briar/briar/-/issues/1822Import RSS feeds shared by other apps2023-03-15T12:35:33ZakwizgranImport RSS feeds shared by other appsImport RSS feeds shared as XML files by other apps.
This should use the same parsing and import logic as #1810.Import RSS feeds shared as XML files by other apps.
This should use the same parsing and import logic as #1810.RSS import2023-02-28https://code.briarproject.org/briar/briar/-/issues/1821Bluetooth setup screen2021-08-31T13:11:23ZakwizgranBluetooth setup screenReflected transport properties should enable most devices to learn their own Bluetooth addresses, but there's still a bootstrapping problem when a group of two or more contacts are all running Android 8.1+ and none of them added each oth...Reflected transport properties should enable most devices to learn their own Bluetooth addresses, but there's still a bootstrapping problem when a group of two or more contacts are all running Android 8.1+ and none of them added each other via Bluetooth.
We could solve this by adding a "Bluetooth setup" workflow. If the user activates the Bluetooth plugin and we don't know the device's address, we tell the user that Bluetooth needs to be set up and that they need a contact nearby to help with this. When both users are ready, we perform discovery, show a list of devices, and ask the users to pick each other's devices. If the devices succeed in making a connection they'll learn each other's addresses and exchange them via reflected transport properties.Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1820Use briar-debug alongside briar: tor socket already in use2022-02-25T15:05:47ZToni MarschallUse briar-debug alongside briar: tor socket already in useHello,
is it somehow possible to run briar-debug alongside briar?
Both are installed on my device but only the first startup app got an internet connection. The status on the second app is "Your phone has Internet access via Wi-Fi. Bri...Hello,
is it somehow possible to run briar-debug alongside briar?
Both are installed on my device but only the first startup app got an internet connection. The status on the second app is "Your phone has Internet access via Wi-Fi. Briar can't connect to the Internet". In the debug log i can read that a server socket is already bound and a connection to some local ips in not possible (tor?).
Is there a workaround?
```
...
2020-10-30 10:09:28.762 6449-9468/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.49.1 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.1.80 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9457/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.1.78 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.1.48 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9457/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.0.253 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.0.82 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9457/org.briarproject.briar.android.debug I/TcpPlugin: 10.0.0.10 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.0.175 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9457/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.43.1 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.43.1 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9457/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.49.1 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.49.1 is not connectable from 192.168.8.113
...
2020-10-30 10:09:29.009 6449-9464/org.briarproject.briar.android.debug I/TcpPlugin: Server socket already bound
...
```
My home network is 192.168.8.x
Thankshttps://code.briarproject.org/briar/briar/-/issues/1819Crash if screen is rotated during setup and "Create Account" is tapped twice2021-07-06T10:03:53ZakwizgranCrash if screen is rotated during setup and "Create Account" is tapped twiceI got the following crash on the Nokia 3.1 (Android 10) while trying to reproduce another bug. During setup, I rotated the screen to landscape and back to portrait after tapping "Create Account", which caused the progress wheel to disapp...I got the following crash on the Nokia 3.1 (Android 10) while trying to reproduce another bug. During setup, I rotated the screen to landscape and back to portrait after tapping "Create Account", which caused the progress wheel to disappear and the "Create Account" button to reappear. I tapped the button again and Briar crashed:
```
2020-10-29 10:58:16.219 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Destroying StartupActivity
2020-10-29 10:58:16.224 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Stopping SplashScreenActivity
2020-10-29 10:58:16.229 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Destroying SplashScreenActivity
2020-10-29 10:58:28.199 10998-11087/org.briarproject.briar.android.debug I/SetupControllerImpl: Creating account
2020-10-29 10:58:28.380 10998-11087/org.briarproject.briar.android.debug I/IdentityManagerImpl: Creating identity took 178 ms
2020-10-29 10:58:28.381 10998-11087/org.briarproject.briar.android.debug I/IdentityManagerImpl: Identity registered
2020-10-29 10:58:29.328 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Pausing SetupActivity
2020-10-29 10:58:29.343 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Stopping SetupActivity
2020-10-29 10:58:29.412 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Destroying SetupActivity
2020-10-29 10:58:29.614 10998-11087/org.briarproject.briar.android.debug I/ScryptKdf: KDF cost parameter 8192
2020-10-29 10:58:30.015 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Creating SetupActivity
2020-10-29 10:58:30.087 10998-11087/org.briarproject.briar.android.debug I/ScryptKdf: Deriving key from password took 472 ms
2020-10-29 10:58:30.213 10998-11087/org.briarproject.briar.android.debug I/AndroidKeyStrengthener: Loaded key from keystore
2020-10-29 10:58:30.338 10998-11087/org.briarproject.briar.android.debug I/AccountManagerImpl: Storing database key in file
2020-10-29 10:58:30.341 10998-11087/org.briarproject.briar.android.debug I/AccountManagerImpl: Created database key directory
2020-10-29 10:58:30.344 10998-11087/org.briarproject.briar.android.debug I/AccountManagerImpl: Stored database key in backup file
2020-10-29 10:58:30.345 10998-11087/org.briarproject.briar.android.debug I/AccountManagerImpl: Renamed backup file to primary
2020-10-29 10:58:30.347 10998-11087/org.briarproject.briar.android.debug I/AccountManagerImpl: Stored second copy of database key in backup file
2020-10-29 10:58:30.354 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Starting SetupActivity
2020-10-29 10:58:30.366 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Resuming SetupActivity
2020-10-29 10:58:33.257 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Pausing SetupActivity
2020-10-29 10:58:33.261 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Stopping SetupActivity
2020-10-29 10:58:33.288 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Destroying SetupActivity
2020-10-29 10:58:33.623 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Creating SetupActivity
2020-10-29 10:58:33.968 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Starting SetupActivity
2020-10-29 10:58:33.980 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Resuming SetupActivity
2020-10-29 10:58:36.130 10998-11087/org.briarproject.briar.android.debug I/SetupControllerImpl: Creating account
2020-10-29 10:58:36.132 10998-11087/org.briarproject.briar.android.debug E/AndroidRuntime: FATAL EXCEPTION: pool-3-thread-1
Process: org.briarproject.briar.android.debug, PID: 10998
java.lang.AssertionError: Already have a database key
at org.briarproject.bramble.account.AccountManagerImpl.createAccount(AccountManagerImpl.java:169)
at org.briarproject.briar.android.account.SetupControllerImpl.lambda$createAccount$0$SetupControllerImpl(SetupControllerImpl.java:111)
at org.briarproject.briar.android.account.-$$Lambda$SetupControllerImpl$bM_lMydguKzowB8BXIvR9b0joQw.run(Unknown Source:8)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
```Adapt to changes in the Android platformIvanaIvana2021-04-30https://code.briarproject.org/briar/briar/-/issues/1817Research communication via public mesh2022-07-20T10:38:58ZakwizgranResearch communication via public meshDevelop and evaluate one or more concepts for communicating over a "public mesh" (as opposed to Briar's "social mesh", where users only connect to their contacts). A delay-tolerant, publish-subscribe architecture with end-to-end encrypti...Develop and evaluate one or more concepts for communicating over a "public mesh" (as opposed to Briar's "social mesh", where users only connect to their contacts). A delay-tolerant, publish-subscribe architecture with end-to-end encryption is assumed.
Each concept must include solutions for:
* Discovering nearby peers
* Connecting to peers
* Deciding which data to sync with each peer
* Providing an API for user-facing components (e.g. messaging) to insert data into the mesh and be notified when relevant data is received
Concepts must be suitable for use on unrooted Android devices (taking into account current restrictions on device discovery). Ideally concepts should also be suitable for use on iOS and allow communication between Android and iOS.
Identify and evaluate any risks of passive information leaks or active attacks. Evaluate performance taking Briar's "social mesh" as a baseline.Public mesh research2023-04-30https://code.briarproject.org/briar/briar/-/issues/1816Research multi-hop communication via social mesh2023-09-15T16:49:27ZakwizgranResearch multi-hop communication via social meshIdentify one or more possible solutions for propagating end-to-end encrypted data over the "social mesh" of connections between Briar users, by allowing devices to relay data they don't subscribe to.
Identify and evaluate any risks of p...Identify one or more possible solutions for propagating end-to-end encrypted data over the "social mesh" of connections between Briar users, by allowing devices to relay data they don't subscribe to.
Identify and evaluate any risks of passive information leaks or active attacks. Evaluate performance (e.g. fraction of messages delivered, delivery latency, bandwidth and battery use) taking the current single-hop sync as a baseline. Recommend whether any of the solutions should be incorporated into Briar.2022-12-31https://code.briarproject.org/briar/briar/-/issues/1812Update own mailbox's contact list when contacts are added or removed2022-08-12T12:44:40ZakwizgranUpdate own mailbox's contact list when contacts are added or removedWhen a contact is added, updated or deleted, queue an update on any open connections to the user's own mailbox.
Related to briar-mailbox#4, #2188. Depends on #2182, #2183, #2187, #2184.When a contact is added, updated or deleted, queue an update on any open connections to the user's own mailbox.
Related to briar-mailbox#4, #2188. Depends on #2182, #2183, #2187, #2184.Mailbox: Contact management API2022-10-31https://code.briarproject.org/briar/briar/-/issues/1811Update Bramble protocol stack to support syncing via mailbox2022-08-17T10:09:50ZakwizgranUpdate Bramble protocol stack to support syncing via mailboxWhen communicating via mailboxes, the max latency and thus the retransmission interval are very long, so we need to be careful about any circumstances that could cause messages to be lost.
On the sender side, if an error (such as an IO ...When communicating via mailboxes, the max latency and thus the retransmission interval are very long, so we need to be careful about any circumstances that could cause messages to be lost.
On the sender side, if an error (such as an IO error, app crash or device crash) occurs while we're writing messages to a file, we need to ensure that those messages can be sent again after recovering from the error. Ideally this should apply to acks too.
On the receiver side, if an error occurs while we're reading messages from a file, we need to ensure that the file can be read again after recovering from the error.Mailbox2022-10-31