briar issueshttps://code.briarproject.org/groups/briar/-/issues2022-09-21T21:56:19Zhttps://code.briarproject.org/briar/briar-desktop/-/issues/382.desktop file for jar distribution2022-09-21T21:56:19ZMikolai Gütschow.desktop file for jar distributionWhile working on !214
@ialokim started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/214#note_70289): (+9 comments)
> one thing worth mentioning is that the Briar logo is not shown in this test syst...While working on !214
@ialokim started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/214#note_70289): (+9 comments)
> one thing worth mentioning is that the Briar logo is not shown in this test system since no `.desktop` file is installed when directly running the jar (as opposed to an installation via deb (and flatpack?)). We could overcome this by setting an image on the notification itself, but I would have to look into it again. Also, it might be nice to have the option of creating the `.desktop` file anyhow, to be able to find it in the start menu for example. Not sure how this is usually handled with Java programs distributed as jar files...
We should probably check on (first or all?) launch if a `.desktop` file is present on the system and otherwise offer the user to create one.Desktop 1.0.0https://code.briarproject.org/briar/briar/-/issues/2365DesktopLifecycleModule extends LifecycleModule which probably doesn't work2022-09-21T19:16:45ZSebastianDesktopLifecycleModule extends LifecycleModule which probably doesn't workSee [this discussion](https://code.briarproject.org/briar/briar/-/merge_requests/1699#note_71081) on IoModule and TestIoModule which had a similar problem.See [this discussion](https://code.briarproject.org/briar/briar/-/merge_requests/1699#note_71081) on IoModule and TestIoModule which had a similar problem.https://code.briarproject.org/briar/briar/-/issues/2166Create a secure random provider for Windows2022-09-19T10:49:02ZNicoCreate a secure random provider for WindowsWhen starting Briar Desktop on Windows, it fails with the following error because so far no SecureRandomProvider for Windows is implemented:
```
C:\Users\Test\.jdks\azul-15.0.4\bin\java.exe "-javaagent:C:\Program Files\JetBrains\Intelli...When starting Briar Desktop on Windows, it fails with the following error because so far no SecureRandomProvider for Windows is implemented:
```
C:\Users\Test\.jdks\azul-15.0.4\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.2.2\lib\idea_rt.jar=63172:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.2.2\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\Test\Documents\briar-desktop\build\classes\java\main;C:\Users\Test\Documents\briar-desktop\build\classes\kotlin\main;C:\Users\Test\Documents\briar-desktop\build\tmp\kapt3\classes\main;C:\Users\Test\Documents\briar-desktop\build\resources\main;C:\Users\Test\Documents\briar-desktop\briar\bramble-java\libs\bluecove-2.1.1-SNAPSHOT-briar.jar;C:\Users\Test\Documents\briar-desktop\briar\bramble-java\libs\bluecove-gpl-2.1.1-SNAPSHOT.jar;C:\Users\Test\Documents\briar-desktop\briar\bramble-java\libs\jssc-0.9-briar.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jdk8\1.5.10\3f4af7aff21c4ec46e3cdd645639d0a63a68d3d0\kotlin-stdlib-jdk8-1.5.10.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.10.0\1127c9cf62f2bb3121a3a2a0a1351d251a602117\jackson-databind-2.10.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\com.github.ajalt\clikt\2.2.0\a7e7b9b278a6e83cc2d9f2cf0db93dff9a93d8f5\clikt-2.2.0.jar;C:\Users\Test\Documents\briar-desktop\briar\briar-core\build\classes\java\main;C:\Users\Test\Documents\briar-desktop\briar\bramble-java\build\classes\java\main;C:\Users\Test\Documents\briar-desktop\briar\bramble-java\build\resources\main;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jdk7\1.5.10\c49d0703d16c6cb1526cc07b9b46486da1dd8a60\kotlin-stdlib-jdk7-1.5.10.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.5.10\da6a904b132f0402fa4d79169a3c1770598d4702\kotlin-stdlib-1.5.10.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.10.0\e01cfd93b80d6773b3f757c78e756c9755b47b81\jackson-annotations-2.10.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.10.0\4e2c5fa04648ec9772c63e2101c53af6504e624e\jackson-core-2.10.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.material\material-icons-extended-desktop\0.4.0\58fb0b18c77a2dde55fa8c749c436d424a220203\material-icons-extended-desktop-0.4.0.jar;C:\Users\Test\Documents\briar-desktop\briar\briar-api\build\classes\java\main;C:\Users\Test\.gradle\caches\modules-2\files-2.1\com.rometools\rome\1.15.0\d3614542b857eccc0555d1ee8dfc36d2043d9c1f\rome-1.15.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jdom\jdom2\2.0.6\6f14738ec2e9dd0011e343717fa624a10f8aab64\jdom2-2.0.6.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\com.squareup.okhttp3\okhttp\3.12.13\528e024f340da35cca5d679b631da85d8db9ed\okhttp-3.12.13.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jsoup\jsoup\1.13.1\f9577f3732bb7caa4fee8aba5053158f4010c118\jsoup-1.13.1.jar;C:\Users\Test\Documents\briar-desktop\briar\bramble-core\build\classes\java\main;C:\Users\Test\Documents\briar-desktop\briar\bramble-core\build\resources\main;C:\Users\Test\.gradle\caches\modules-2\files-2.1\net.java.dev.jna\jna-platform\4.5.2\741853c07152f6c0fef5194efa6b2dabac22e9c0\jna-platform-4.5.2.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\net.java.dev.jna\jna\4.5.2\35d000afbaa4ed425d91873b40f4df9b8236875b\jna-4.5.2.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\13.0\919f0dfe192fb4e063e7dacadee7f8bb9a2672a9\annotations-13.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-common\1.5.10\6b84d926e28493be69daf673e40076f89492ef7\kotlin-stdlib-common-1.5.10.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.desktop\desktop-jvm\0.4.0\58115d964397bd97025cd13a79a055b61194093b\desktop-jvm-0.4.0.jar;C:\Users\Test\Documents\briar-desktop\briar\bramble-api\build\classes\java\main;C:\Users\Test\.gradle\caches\modules-2\files-2.1\com.rometools\rome-utils\1.15.0\ab1cb95382bf9a8dec81165d328bcbbf1acfb3ae\rome-utils-1.15.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\1.7.16\3a6274f658487d5bfff9af3862beff6da1e7fd52\slf4j-api-1.7.16.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\com.squareup.okio\okio\1.15.0\bc28b5a964c8f5721eb58ee3f3c47a9bcbf4f4d8\okio-1.15.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\com.madgag.spongycastle\core\1.58.0.0\e08789f8f1e74f155db8b69c3575b5cb213c156c\core-1.58.0.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\com.h2database\h2\1.4.192\1106492605db135523d2817881cdf029d9292afa\h2-1.4.192.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.bitlet\weupnp\0.1.4\b99cd791ede89b7c17426e6c51a0f171dc925def\weupnp-0.1.4.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\net.i2p.crypto\eddsa\0.2.0\856a92559c4daf744cb27c93cd8b7eb1f8c4780\eddsa-0.2.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.whispersystems\curve25519-java\0.5.0\787dab46ed8e6f8adf9bbbb945145d503b7f181a\curve25519-java-0.5.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.briarproject\jtorctl\0.3\83622828c5457584d5c1e0a89d893fd3844fd7f5\jtorctl-0.3.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.material\material-icons-core-desktop\0.4.0\510ee3df8a1fde982a99a40a09d2f39098b47c72\material-icons-core-desktop-0.4.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\com.google.dagger\dagger\2.33\7ac2b51c8cf8e2c1a30fa74b917629c60ae2405d\dagger-2.33.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\com.google.code.findbugs\jsr305\3.0.2\25ea2e8b0c338a877313bd4672d3fe056ea78f0d\jsr305-3.0.2.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.material\material-desktop\0.4.0\210d13a67c94912e31240eea347b3704e2b6651a\material-desktop-0.4.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.foundation\foundation-desktop\0.4.0\ab89b6280cadc4866cafe42ec43ab40faccfcc30\foundation-desktop-0.4.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.ui\ui-desktop\0.4.0\8533de36dc9107fa4e57f377ba147cfc17cba850\ui-desktop-0.4.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.runtime\runtime-desktop\0.4.0\2452d00191f736d58f2fa50dd1821623adbaefd9\runtime-desktop-0.4.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\javax.inject\javax.inject\1\6975da39a7040257bd51d21a231b76c915872d38\javax.inject-1.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlinx\kotlinx-coroutines-swing\1.4.3\9da350dc1f729955e20f1f3b45dd14c3c9aa1eeb\kotlinx-coroutines-swing-1.4.3.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.material\material-ripple-desktop\0.4.0\e2ccee827f2082402b5111368192fcfb579a97f3\material-ripple-desktop-0.4.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.animation\animation-core-desktop\0.4.0\d838af1fd2a80d1664ffc073df89463023fb6d4b\animation-core-desktop-0.4.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.ui\ui-text-desktop\0.4.0\3a8d29230c7565cd98728f2a1bbfc33d97cd12a5\ui-text-desktop-0.4.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.animation\animation-desktop\0.4.0\af2e490608e458a20c8d51ba602ff6a6e25d7e61\animation-desktop-0.4.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.runtime\runtime-saveable-desktop\0.4.0\c6c172bc8c57ca718e37858b8d5baf70c9ae5268\runtime-saveable-desktop-0.4.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.ui\ui-graphics-desktop\0.4.0\428dc38b14978b3fed6a9f1756af36b34baad76e\ui-graphics-desktop-0.4.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.ui\ui-unit-desktop\0.4.0\41ff9a8c171b9136f06eff80635a2330a6086727\ui-unit-desktop-0.4.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.ui\ui-geometry-desktop\0.4.0\261a169b4e2816397d8c4e22e63a2d590f99210a\ui-geometry-desktop-0.4.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlinx\kotlinx-coroutines-core-jvm\1.4.3\1051e11eb789ed1df93412bebe0f06e9d29160e4\kotlinx-coroutines-core-jvm-1.4.3.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.skiko\skiko-jvm\0.3.1\3b01e23f3c72d27d8b85836f0ab81eb32ccb67f5\skiko-jvm-0.3.1.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.foundation\foundation-layout-desktop\0.4.0\dbd71e8c3b90e859b0ca3b7b1e75091033f20960\foundation-layout-desktop-0.4.0.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.skiko\skiko-jvm-runtime-windows-x64\0.3.1\42406736546c8404a1a330a88c5d6b815ddae4e6\skiko-jvm-runtime-windows-x64-0.3.1.jar;C:\Users\Test\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.ui\ui-util-desktop\0.4.0\6de31edde97babd7339e67bb1b82ebff1a805e9c\ui-util-desktop-0.4.0.jar org.briarproject.briar.desktop.MainKt --debug
Exception in thread "main" java.lang.UnsupportedOperationException
at org.briarproject.bramble.system.DesktopSecureRandomModule.provideSecureRandomProvider(DesktopSecureRandomModule.java:22)
at org.briarproject.bramble.system.DesktopSecureRandomModule_ProvideSecureRandomProviderFactory.provideSecureRandomProvider(DesktopSecureRandomModule_ProvideSecureRandomProviderFactory.java:32)
at org.briarproject.bramble.system.DesktopSecureRandomModule_ProvideSecureRandomProviderFactory.get(DesktopSecureRandomModule_ProvideSecureRandomProviderFactory.java:22)
at org.briarproject.bramble.system.DesktopSecureRandomModule_ProvideSecureRandomProviderFactory.get(DesktopSecureRandomModule_ProvideSecureRandomProviderFactory.java:8)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at org.briarproject.bramble.crypto.CryptoModule_ProvideCryptoComponentFactory.get(CryptoModule_ProvideCryptoComponentFactory.java:31)
at org.briarproject.bramble.crypto.CryptoModule_ProvideCryptoComponentFactory.get(CryptoModule_ProvideCryptoComponentFactory.java:10)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at org.briarproject.bramble.sync.MessageFactoryImpl_Factory.get(MessageFactoryImpl_Factory.java:21)
at org.briarproject.bramble.sync.MessageFactoryImpl_Factory.get(MessageFactoryImpl_Factory.java:8)
at org.briarproject.bramble.sync.SyncModule_ProvideMessageFactoryFactory.get(SyncModule_ProvideMessageFactoryFactory.java:26)
at org.briarproject.bramble.sync.SyncModule_ProvideMessageFactoryFactory.get(SyncModule_ProvideMessageFactoryFactory.java:9)
at org.briarproject.bramble.db.DatabaseModule_ProvideDatabaseFactory.get(DatabaseModule_ProvideDatabaseFactory.java:36)
at org.briarproject.bramble.db.DatabaseModule_ProvideDatabaseFactory.get(DatabaseModule_ProvideDatabaseFactory.java:12)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at org.briarproject.bramble.db.DatabaseModule_ProvideDatabaseComponentFactory.get(DatabaseModule_ProvideDatabaseComponentFactory.java:40)
at org.briarproject.bramble.db.DatabaseModule_ProvideDatabaseComponentFactory.get(DatabaseModule_ProvideDatabaseComponentFactory.java:13)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl_Factory.get(LifecycleManagerImpl_Factory.java:30)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl_Factory.get(LifecycleManagerImpl_Factory.java:10)
at org.briarproject.bramble.lifecycle.LifecycleModule_ProvideLifecycleManagerFactory.get(LifecycleModule_ProvideLifecycleManagerFactory.java:26)
at org.briarproject.bramble.lifecycle.LifecycleModule_ProvideLifecycleManagerFactory.get(LifecycleModule_ProvideLifecycleManagerFactory.java:9)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at org.briarproject.bramble.cleanup.CleanupModule_ProvideCleanupManagerFactory.get(CleanupModule_ProvideCleanupManagerFactory.java:35)
at org.briarproject.bramble.cleanup.CleanupModule_ProvideCleanupManagerFactory.get(CleanupModule_ProvideCleanupManagerFactory.java:11)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at org.briarproject.briar.desktop.DaggerBriarDesktopApp.injectEagerSingletons(DaggerBriarDesktopApp.java:1387)
at org.briarproject.briar.desktop.DaggerBriarDesktopApp.inject(DaggerBriarDesktopApp.java:1279)
at org.briarproject.bramble.BrambleCoreEagerSingletons$Helper.injectEagerSingletons(BrambleCoreEagerSingletons.java:48)
at org.briarproject.briar.desktop.Main$run$1.invoke(Main.kt:64)
at org.briarproject.briar.desktop.Main$run$1.invoke(Main.kt:48)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.runtime.ComposerKt.invokeComposable(Composer.kt:3320)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:2571)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:2567)
at androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations(SnapshotState.kt:523)
at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:2560)
at androidx.compose.runtime.ComposerImpl.composeContent$runtime(Composer.kt:2515)
at androidx.compose.runtime.CompositionImpl.composeContent(Composition.kt:476)
at androidx.compose.runtime.Recomposer.composeInitial$runtime(Recomposer.kt:726)
at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:432)
at androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2.invokeSuspend(Application.desktop.kt:171)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:316)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Process finished with exit code 1
```
Sub-issue of #31.https://code.briarproject.org/briar/briar-desktop/-/issues/354Consolidate Dagger DesktopModule and DesktopTestModule2022-09-16T19:36:13ZMikolai GütschowConsolidate Dagger DesktopModule and DesktopTestModule... to avoid duplication and problems such as #352... to avoid duplication and problems such as #352Desktop 0.3.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/386Tooltip for sidebar has uppercase and unlocalized strings2022-09-16T19:19:35ZSebastianTooltip for sidebar has uppercase and unlocalized stringsit shows CONTACTS, SETTINGS and ABOUT.it shows CONTACTS, SETTINGS and ABOUT.SebastianSebastianhttps://code.briarproject.org/briar/briar/-/issues/2165Make use of Tor on Windows2022-09-15T16:14:47ZNicoMake use of Tor on WindowsWe need some mechanism to use the Tor binary on Windows. The relevant class for Linux is [UnixTorPluginFactory](https://code.briarproject.org/briar/briar/-/blob/beta-1.3.8/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/Un...We need some mechanism to use the Tor binary on Windows. The relevant class for Linux is [UnixTorPluginFactory](https://code.briarproject.org/briar/briar/-/blob/beta-1.3.8/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/UnixTorPluginFactory.java#L96).
Similar to https://code.briarproject.org/briar/briar/-/merge_requests/1376.
Related to https://code.briarproject.org/briar/briar-desktop/-/issues/31.
Depends on https://code.briarproject.org/briar/tor-reproducer/-/issues/2.https://code.briarproject.org/briar/briar/-/issues/2364Do we need a revocation mechanism or remote-destruction? Is it helpful?2022-09-15T09:20:43ZThomasDo we need a revocation mechanism or remote-destruction? Is it helpful?Hi!
I found this ancient thread:https://sourceforge.net/p/briar/mailman/briar-devel/thread/4F33A780.8050705%40gmx.com/#msg28809772
>(Starting a new thread for this because the old thread was getting frayed.)
>
>On 09/02/12 03:14, awgh wr...Hi!
I found this ancient thread:https://sourceforge.net/p/briar/mailman/briar-devel/thread/4F33A780.8050705%40gmx.com/#msg28809772
>(Starting a new thread for this because the old thread was getting frayed.)
>
>On 09/02/12 03:14, awgh wrote:
>> - Cert revocations are signed with the cert they're revoking. If that
>> cert isn't in the local table, this is one string compare. Not much of
>> a DoS.
>
>Cool, I think we have the beginnings of a design here. Thanks Ben!
>
>1. Each user creates a personal keypair (this is separate from any
>pseudonyms she may create).
>
>2. The user creates a revocation certificate and signs it with the
>private key.
>
>3. The user applies a secret sharing algorithm to the revocation
>certificate. She chooses a few trusted friends and sends each friend a
>SAVE_SHARE message, which contains a share of the revocation certificate
>and the ID of the key.
>
>4. The user creates a KEY_ID message containing the ID of the key and
>sends it to any contacts who didn't receive shares.
>
>5. If a friend thinks the user's key has been compromised, she creates a
>REVOKE_SHARE message containing her share of the certificate and the ID
>of the key. She stores the message and sends it to all her contacts.
>
>6. If a user receives a REVOKE_SHARE message and recognises the ID, she
>stores the message and forwards it to all her contacts.
>
>7. If a user receives enough shares to reconstruct the revocation
>certificate, she considers the key revoked. She creates a REVOKE_CERT
>message containing the certificate, stores the message and sends it to
>all her contacts.
>
>8. If a user receives a REVOKE_CERT message and recognises the ID, she
>considers the key revoked, stores the message and forwards it to all her
>contacts.
>
>Does this look like a reasonable start?
>
>Cheers,
>Michael
I know that a lot has changed since then. But do we need a revocation mechanism in Briar now?
It also made me think: Is a remote-identity-destruction-mechanism helpful? (If the phone gets into the wrong hands and the phone can still access another contact some way - that contacts can together derive a revocation-key which tells the phone to delete the Briar-Identity?) Or is that remote-mechanism more in the scope of a panic-button-app?https://code.briarproject.org/briar/briar-spec/-/issues/16Not documented: What if BSP-Content > max length of frame data2022-09-15T09:05:44ZThomasNot documented: What if BSP-Content > max length of frame dataHi!
I already got that info through debugging, but I didn't find in the doc what happend when BSP-Data is bigger than the content of a BTP-Frame is allowed to be - that is is just sliced and the next frame starts directly with the conten...Hi!
I already got that info through debugging, but I didn't find in the doc what happend when BSP-Data is bigger than the content of a BTP-Frame is allowed to be - that is is just sliced and the next frame starts directly with the content without having a header.https://code.briarproject.org/briar/briar-spec/-/issues/15clarify things around contact initiation2022-09-15T08:49:39ZThomasclarify things around contact initiationHi!
It it not really clear for me when reading the Specs when BHP is used. Basically it is only used currently in the Endpoint created in.
I would add clarification to BHP, BRP and also generally tackle BHP+BRP in https://code.briarproje...Hi!
It it not really clear for me when reading the Specs when BHP is used. Basically it is only used currently in the Endpoint created in.
I would add clarification to BHP, BRP and also generally tackle BHP+BRP in https://code.briarproject.org/briar/briar/-/wikis/A-Quick-Overview-of-the-Protocol-Stack .
The Key Agreement Protocol (https://chat.briarproject.org/briar/pl/rzro8mqxx7fz9x3cfmaejrkkbr ) is also currently never mentioned or specified.https://code.briarproject.org/briar/briar-desktop/-/issues/301Use shrinked version for native distribution2022-09-15T05:18:11ZMikolai GütschowUse shrinked version for native distributionThe following discussion from !134 should be addressed:
- [ ] @sebkur started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/134#note_62165): (+1 comment)
> What's still going to be tricky is to ...The following discussion from !134 should be addressed:
- [ ] @sebkur started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/134#note_62165): (+1 comment)
> What's still going to be tricky is to ship the shrinked jar file along with our `deb`, because we somehow need to tweak it to use that file. Seemed like no-one on the kotlinlang slack knew how to do that, but I'll try to figure something out.https://code.briarproject.org/briar/briar-desktop/-/issues/374Date in message cards not localized properly2022-09-14T07:10:38ZSebastianDate in message cards not localized properlyThe date formatted below the message texts in the chat history (and also in the date/time for last message in contact list) is not localized for the language selected in the settings, instead the system's default locale is being used.
I...The date formatted below the message texts in the chat history (and also in the date/time for last message in contact list) is not localized for the language selected in the settings, instead the system's default locale is being used.
I think the problem is in `TimeUtils.kt` where we need to apply `localizedBy(Locale)` to the formatter.Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/383Follow-up from notifications: improve setup for interactive tests2022-09-14T07:02:47ZSebastianFollow-up from notifications: improve setup for interactive testsThe following discussion from !214 should be addressed:
- [ ] @sebkur started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/214#note_70441): (+10 comments)
> What was your motivation for these c...The following discussion from !214 should be addressed:
- [ ] @sebkur started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/214#note_70441): (+10 comments)
> What was your motivation for these changes here?
This discussion was about `RunWithMultipleTemporaryAccounts` and moving the customization into a `LaunchedEffect()` with `delay(500)` in 107100adc7290d98:
```kotlin
application {
LaunchedEffect(Unit) {
delay(500)
apps.forEach {
val accountManager = it.getAccountManager()
val lifecycleManager = it.getLifecycleManager()
val dbKey = accountManager.databaseKey ?: throw AssertionError()
lifecycleManager.startServices(dbKey)
lifecycleManager.waitForStartup()
}
customization(apps)
}
```https://code.briarproject.org/briar/briar-desktop/-/issues/365Update screenshot in README after color updates2022-09-13T19:34:13ZSebastianUpdate screenshot in README after color updatesSebastianSebastianhttps://code.briarproject.org/briar/briar-desktop/-/issues/196Easify read-only access to settings2022-09-10T08:35:04ZNicoEasify read-only access to settingsThis may or may not be done already as part of !49.
From https://code.briarproject.org/briar/briar-desktop/-/merge_requests/49#note_57372:
> Yes, that should work at least. However for the access to settings we might want to think abou...This may or may not be done already as part of !49.
From https://code.briarproject.org/briar/briar-desktop/-/merge_requests/49#note_57372:
> Yes, that should work at least. However for the access to settings we might want to think about other ways than reusing the view model that is mostly designed for the settings screen, including functions to update the settings. I fear we might need to use this `viewModel()` call then at several places where we actually only need to look up a single setting.
>
> I'm not sure if that's the best way, but I would rather have a `SettingsGateway` or `SettingsAdapter` (feel free to come up with a better naming) that would be provided using `CompositionLocalProvider` as well. This class would only give read-access to the settings then.Desktop 0.4.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/310Play notification sound when new messages arrive while window is not focused2022-09-10T08:35:04ZSebastianPlay notification sound when new messages arrive while window is not focusedImproving on !151 and addressing more of #156, I think it is customary for chat apps to play a sound when new messages arrive to draw the user's attention to the app. Of course, the user should be able to turn that off. I know it on the ...Improving on !151 and addressing more of #156, I think it is customary for chat apps to play a sound when new messages arrive to draw the user's attention to the app. Of course, the user should be able to turn that off. I know it on the desktop from RocketChat, Mattermost and on mobile basically any messaging app does this.Desktop 0.4.0https://code.briarproject.org/briar/briar/-/issues/28LAN peer discovery2022-09-08T12:24:41ZakwizgranLAN peer discoveryThere are three options:
1) Use Wi-Fi Direct peer discovery.
Advantages:
* Available on recent Android devices with very little effort
* Doesn't create a Briar-specific traffic fingerprint
* Doesn't reveal the number of contacts
Disad...There are three options:
1) Use Wi-Fi Direct peer discovery.
Advantages:
* Available on recent Android devices with very little effort
* Doesn't create a Briar-specific traffic fingerprint
* Doesn't reveal the number of contacts
Disadvantages:
* Not available on older Android devices
* May not be available on all platforms
2) Use BitTorrent's local peer discovery protocol. Advertise a single infohash for all contacts.
https://en.wikipedia.org/wiki/Local_Peer_Discovery
http://forum.utorrent.com/viewtopic.php?pid=433785#p433785
Advantages:
* Doesn't create a Briar-specific traffic fingerprint
* Doesn't reveal the number of contacts
Disadvantages:
* Direct use of multicast won't work on all Android devices
3) Use a custom protocol. Choose a pseudorandom multicast group, advertise it in transport properties. Join the group at startup and periodically send a UDP packet to the group. Join contacts' multicast groups, listen for UDP packets, and connect back via TCP.
Advantages:
* Won't trigger filter rules designed to catch P2P traffic
Disadvantages:
* Direct use of multicast won't work on all Android devices
* Will IGMP traffic reveal the number of contacts?https://code.briarproject.org/briar/briar/-/issues/1052Trust indicator in main contact-list2022-09-06T09:58:49ZligiTrust indicator in main contact-listThe trust indicator should also be visible in the main contact list - discussed with @grote at c-base briar meetupThe trust indicator should also be visible in the main contact list - discussed with @grote at c-base briar meetuphttps://code.briarproject.org/briar/briar/-/issues/1630Remove anonymous author status2022-09-06T09:56:47ZakwizgranRemove anonymous author statusRemove the obsolete AuthorInfo.Status.ANONYMOUS constant and the corresponding drawable for the trust indicator.Remove the obsolete AuthorInfo.Status.ANONYMOUS constant and the corresponding drawable for the trust indicator.Android 1.4https://code.briarproject.org/briar/briar-desktop/-/issues/379Data dir is resolved relative to submodule directory when run using `./gradle...2022-09-06T06:56:14ZSebastianData dir is resolved relative to submodule directory when run using `./gradlew run`When I run briar from the git repo using `./gradlew run --args="--data-dir briardata"` then I would expect `briardata` to be in the current working directory where I'm currently located with my shell. However, apparently the current work...When I run briar from the git repo using `./gradlew run --args="--data-dir briardata"` then I would expect `briardata` to be in the current working directory where I'm currently located with my shell. However, apparently the current working directory for the process is the `briar-desktop` subdirectory so that the data dir created/used really is `briar-desktop/briardata`.https://code.briarproject.org/briar/briar/-/issues/2355Upgrade to Tor 0.4.5.142022-09-05T12:25:37ZakwizgranUpgrade to Tor 0.4.5.14https://gitlab.torproject.org/tpo/core/tor/-/raw/release-0.4.5/ReleaseNoteshttps://gitlab.torproject.org/tpo/core/tor/-/raw/release-0.4.5/ReleaseNotesAndroid 1.4Torsten GroteTorsten Grote