From c991cfb926dcdbf81f5685273aff602859ad3239 Mon Sep 17 00:00:00 2001 From: ameba23 Date: Fri, 26 Feb 2021 10:57:27 +0100 Subject: [PATCH 01/11] add secret-sharing-wrapper to build.gradle (WIP) --- briar-core/build.gradle | 1 + build.gradle | 1 + 2 files changed, 2 insertions(+) diff --git a/briar-core/build.gradle b/briar-core/build.gradle index 14bc3aa16..a884762b6 100644 --- a/briar-core/build.gradle +++ b/briar-core/build.gradle @@ -15,6 +15,7 @@ dependencies { // okhttp 3.12.x is supported until end of 2020, newer versions need minSdk 21 implementation 'com.squareup.okhttp3:okhttp:3.12.6' implementation 'org.jsoup:jsoup:1.11.3' + implementation 'org.magmacollective.darkcrystal:dark-crystal-secret-sharing-wrapper:1.0.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.24' diff --git a/build.gradle b/build.gradle index 75ffd3401..241efb19f 100644 --- a/build.gradle +++ b/build.gradle @@ -5,6 +5,7 @@ allprojects { jcenter() mavenLocal() google() + maven { url 'https://mvn.darkcrystal.pw' } maven { url "https://jitpack.io" } } afterEvaluate { From 77d0c165309ddb1534486ce99ce687be1d3630e6 Mon Sep 17 00:00:00 2001 From: ameba23 Date: Fri, 26 Feb 2021 11:15:50 +0100 Subject: [PATCH 02/11] add updated witness.gradle --- briar-android/witness.gradle | 6 ++++-- briar-core/witness.gradle | 39 ++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/briar-android/witness.gradle b/briar-android/witness.gradle index 668b51e64..bc776f945 100644 --- a/briar-android/witness.gradle +++ b/briar-android/witness.gradle @@ -116,18 +116,19 @@ dependencyVerification { 'com.google.dagger:dagger:2.24:dagger-2.24.jar:550a6e46a6dfcdf1d764887b6090cea94f783327e50e5c73754f18facfc70b64', 'com.google.errorprone:error_prone_annotations:2.2.0:error_prone_annotations-2.2.0.jar:6ebd22ca1b9d8ec06d41de8d64e0596981d9607b42035f9ed374f9de271a481a', 'com.google.errorprone:error_prone_annotations:2.3.2:error_prone_annotations-2.3.2.jar:357cd6cfb067c969226c442451502aee13800a24e950fdfde77bcdb4565a668d', + 'com.google.errorprone:error_prone_annotations:2.3.4:error_prone_annotations-2.3.4.jar:baf7d6ea97ce606c53e11b6854ba5f2ce7ef5c24dddf0afa18d1260bd25b002c', 'com.google.errorprone:javac-shaded:9-dev-r4023-3:javac-shaded-9-dev-r4023-3.jar:65bfccf60986c47fbc17c9ebab0be626afc41741e0a6ec7109e0768817a36f30', 'com.google.googlejavaformat:google-java-format:1.5:google-java-format-1.5.jar:aa19ad7850fb85178aa22f2fddb163b84d6ce4d0035872f30d4408195ca1144e', 'com.google.guava:failureaccess:1.0.1:failureaccess-1.0.1.jar:a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26', - 'com.google.guava:guava:27.0.1-jre:guava-27.0.1-jre.jar:e1c814fd04492a27c38e0317eabeaa1b3e950ec8010239e400fe90ad6c9107b4', 'com.google.guava:guava:27.1-jre:guava-27.1-jre.jar:4a5aa70cc968a4d137e599ad37553e5cfeed2265e8c193476d7119036c536fe7', + 'com.google.guava:guava:28.1-android:guava-28.1-android.jar:e112ce92c0f0733965eede73d94589c59a72128b06b08bba5ebe2f9ea672ef60', 'com.google.guava:guava:28.1-jre:guava-28.1-jre.jar:30beb8b8527bd07c6e747e77f1a92122c2f29d57ce347461a4a55eb26e382da4', 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99', 'com.google.j2objc:j2objc-annotations:1.1:j2objc-annotations-1.1.jar:2994a7eb78f2710bd3d3bfb639b2c94e219cedac0d4d084d516e78c16dddecf6', 'com.google.j2objc:j2objc-annotations:1.3:j2objc-annotations-1.3.jar:21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b', 'com.google.jimfs:jimfs:1.1:jimfs-1.1.jar:c4828e28d7c0a930af9387510b3bada7daa5c04d7c25a75c7b8b081f1c257ddd', - 'com.google.protobuf:protobuf-java:2.6.1:protobuf-java-2.6.1.jar:55aa554843983f431df5616112cf688d38aa17c132357afd1c109435bfdac4e6', 'com.google.protobuf:protobuf-java:3.10.0:protobuf-java-3.10.0.jar:161d7d61a8cb3970891c299578702fd079646e032329d6c2cabf998d191437c9', + 'com.google.protobuf:protobuf-java:3.11.4:protobuf-java-3.11.4.jar:42e98f58f53d1a49fd734c2dd193880f2dfec3436a2993a00d06b8800a22a3f2', 'com.google.zxing:core:3.3.3:core-3.3.3.jar:5820f81e943e4bce0329306621e2d6255d2930b0a6ce934c5c23c0d6d3f20599', 'com.googlecode.json-simple:json-simple:1.1:json-simple-1.1.jar:2d9484f4c649f708f47f9a479465fc729770ee65617dca3011836602264f6439', 'com.ibm.icu:icu4j:53.1:icu4j-53.1.jar:e37a4467bac5cdeb02c5c4b8e5063d2f4e67b69e3c7df6d6b610f13185572bab', @@ -184,6 +185,7 @@ dependencyVerification { 'org.bouncycastle:bcprov-jdk15on:1.52:bcprov-jdk15on-1.52.jar:0dc4d181e4d347893c2ddbd2e6cd5d7287fc651c03648fa64b2341c7366b1773', 'org.bouncycastle:bcprov-jdk15on:1.56:bcprov-jdk15on-1.56.jar:963e1ee14f808ffb99897d848ddcdb28fa91ddda867eb18d303e82728f878349', 'org.checkerframework:checker-compat-qual:2.5.3:checker-compat-qual-2.5.3.jar:d76b9afea61c7c082908023f0cbc1427fab9abd2df915c8b8a3e7a509bccbc6d', + 'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a', 'org.checkerframework:checker-qual:2.5.2:checker-qual-2.5.2.jar:64b02691c8b9d4e7700f8ee2e742dce7ea2c6e81e662b7522c9ee3bf568c040a', 'org.checkerframework:checker-qual:2.8.1:checker-qual-2.8.1.jar:9103499008bcecd4e948da29b17864abb64304e15706444ae209d17ebe0575df', 'org.codehaus.groovy:groovy-all:2.4.15:groovy-all-2.4.15.jar:51d6c4e71782e85674239189499854359d380fb75e1a703756e3aaa5b98a5af0', diff --git a/briar-core/witness.gradle b/briar-core/witness.gradle index 603dd3432..4858cb1b3 100644 --- a/briar-core/witness.gradle +++ b/briar-core/witness.gradle @@ -1,18 +1,49 @@ dependencyVerification { verify = [ + 'androidx.activity:activity:1.0.0:activity-1.0.0.aar:d1bc9842455c2e534415d88c44df4d52413b478db9093a1ba36324f705f44c3d', + 'androidx.annotation:annotation:1.1.0:annotation-1.1.0.jar:d38d63edb30f1467818d50aaf05f8a692dea8b31392a049bfa991b159ad5b692', + 'androidx.appcompat:appcompat-resources:1.1.0:appcompat-resources-1.1.0.aar:19944d32b46551a17c347e21894b95837fbd7baaafc9e2082794344f222f7361', + 'androidx.appcompat:appcompat:1.1.0:appcompat-1.1.0.aar:8d7299bca44cb3bdf17f5595766acbf459fc81fee223e8686cc6acd3a42ab5c0', + 'androidx.arch.core:core-common:2.1.0:core-common-2.1.0.jar:fe1237bf029d063e7f29fe39aeaf73ef74c8b0a3658486fc29d3c54326653889', + 'androidx.arch.core:core-runtime:2.0.0:core-runtime-2.0.0.aar:87e65fc767c712b437649c7cee2431ebb4bed6daef82e501d4125b3ed3f65f8e', + 'androidx.collection:collection:1.1.0:collection-1.1.0.jar:632a0e5407461de774409352940e292a291037724207a787820c77daf7d33b72', + 'androidx.core:core:1.1.0:core-1.1.0.aar:76c7cfbe596fe3c09a6983bf1c89e889299c08ac9a3b52ce5182a088d056647e', + 'androidx.cursoradapter:cursoradapter:1.0.0:cursoradapter-1.0.0.aar:a81c8fe78815fa47df5b749deb52727ad11f9397da58b16017f4eb2c11e28564', + 'androidx.customview:customview:1.0.0:customview-1.0.0.aar:20e5b8f6526a34595a604f56718da81167c0b40a7a94a57daa355663f2594df2', + 'androidx.drawerlayout:drawerlayout:1.0.0:drawerlayout-1.0.0.aar:9402442cdc5a43cf62fb14f8cf98c63342d4d9d9b805c8033c6cf7e802749ac1', + 'androidx.fragment:fragment:1.1.0:fragment-1.1.0.aar:a14c8b8f2153f128e800fbd266a6beab1c283982a29ec570d2cc05d307d81496', + 'androidx.interpolator:interpolator:1.0.0:interpolator-1.0.0.aar:33193135a64fe21fa2c35eec6688f1a76e512606c0fc83dc1b689e37add7732a', + 'androidx.lifecycle:lifecycle-common:2.1.0:lifecycle-common-2.1.0.jar:76db6be533bd730fb361c2feb12a2c26d9952824746847da82601ef81f082643', + 'androidx.lifecycle:lifecycle-livedata-core:2.0.0:lifecycle-livedata-core-2.0.0.aar:fde334ec7e22744c0f5bfe7caf1a84c9d717327044400577bdf9bd921ec4f7bc', + 'androidx.lifecycle:lifecycle-livedata:2.0.0:lifecycle-livedata-2.0.0.aar:c82609ced8c498f0a701a30fb6771bb7480860daee84d82e0a81ee86edf7ba39', + 'androidx.lifecycle:lifecycle-runtime:2.1.0:lifecycle-runtime-2.1.0.aar:e5173897b965e870651e83d9d5af1742d3f532d58863223a390ce3a194c8312b', + 'androidx.lifecycle:lifecycle-viewmodel:2.1.0:lifecycle-viewmodel-2.1.0.aar:ba55fb7ac1b2828d5327cda8acf7085d990b2b4c43ef336caa67686249b8523d', + 'androidx.loader:loader:1.0.0:loader-1.0.0.aar:11f735cb3b55c458d470bed9e25254375b518b4b1bad6926783a7026db0f5025', + 'androidx.savedstate:savedstate:1.0.0:savedstate-1.0.0.aar:2510a5619c37579c9ce1a04574faaf323cd0ffe2fc4e20fa8f8f01e5bb402e83', + 'androidx.vectordrawable:vectordrawable-animated:1.1.0:vectordrawable-animated-1.1.0.aar:76da2c502371d9c38054df5e2b248d00da87809ed058f3363eae87ce5e2403f8', + 'androidx.vectordrawable:vectordrawable:1.1.0:vectordrawable-1.1.0.aar:46fd633ac01b49b7fcabc263bf098c5a8b9e9a69774d234edcca04fb02df8e26', + 'androidx.versionedparcelable:versionedparcelable:1.1.0:versionedparcelable-1.1.0.aar:9a1d77140ac222b7866b5054ee7d159bc1800987ed2d46dd6afdd145abb710c1', + 'androidx.viewpager:viewpager:1.0.0:viewpager-1.0.0.aar:147af4e14a1984010d8f155e5e19d781f03c1d70dfed02a8e0d18428b8fc8682', 'cglib:cglib:3.2.0:cglib-3.2.0.jar:adb13bab79712ad6bdf1bd59f2a3918018a8016e722e8a357065afb9e6690861', 'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', + 'com.google.code.gson:gson:2.8.6:gson-2.8.6.jar:c8fb4839054d280b3033f800d1f5a97de2f028eb8ba2eb458ad287e536f3f25f', 'com.google.dagger:dagger-compiler:2.24:dagger-compiler-2.24.jar:3c5afb955fb188da485cb2c048eff37dce0e1530b9780a0f2f7187d16d1ccc1f', 'com.google.dagger:dagger-producers:2.24:dagger-producers-2.24.jar:f10f45b95191954d5d6b043fca9e62fb621d21bf70634b8f8476c7988b504c3a', 'com.google.dagger:dagger-spi:2.24:dagger-spi-2.24.jar:c038445d14dbcb4054e61bf49e05009edf26fce4fdc7ec1a9db544784f68e718', 'com.google.dagger:dagger:2.24:dagger-2.24.jar:550a6e46a6dfcdf1d764887b6090cea94f783327e50e5c73754f18facfc70b64', 'com.google.errorprone:error_prone_annotations:2.2.0:error_prone_annotations-2.2.0.jar:6ebd22ca1b9d8ec06d41de8d64e0596981d9607b42035f9ed374f9de271a481a', + 'com.google.errorprone:error_prone_annotations:2.3.4:error_prone_annotations-2.3.4.jar:baf7d6ea97ce606c53e11b6854ba5f2ce7ef5c24dddf0afa18d1260bd25b002c', 'com.google.errorprone:javac-shaded:9-dev-r4023-3:javac-shaded-9-dev-r4023-3.jar:65bfccf60986c47fbc17c9ebab0be626afc41741e0a6ec7109e0768817a36f30', 'com.google.googlejavaformat:google-java-format:1.5:google-java-format-1.5.jar:aa19ad7850fb85178aa22f2fddb163b84d6ce4d0035872f30d4408195ca1144e', 'com.google.guava:failureaccess:1.0.1:failureaccess-1.0.1.jar:a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26', 'com.google.guava:guava:27.1-jre:guava-27.1-jre.jar:4a5aa70cc968a4d137e599ad37553e5cfeed2265e8c193476d7119036c536fe7', + 'com.google.guava:guava:28.1-android:guava-28.1-android.jar:e112ce92c0f0733965eede73d94589c59a72128b06b08bba5ebe2f9ea672ef60', 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99', 'com.google.j2objc:j2objc-annotations:1.1:j2objc-annotations-1.1.jar:2994a7eb78f2710bd3d3bfb639b2c94e219cedac0d4d084d516e78c16dddecf6', + 'com.google.j2objc:j2objc-annotations:1.3:j2objc-annotations-1.3.jar:21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b', + 'com.google.protobuf:protobuf-java-util:3.11.4:protobuf-java-util-3.11.4.jar:29aacfff1cc455102627d4cfe6f319e4864ea7ce1a4e9d03b4c7bb01fc8255b0', + 'com.google.protobuf:protobuf-java:3.11.4:protobuf-java-3.11.4.jar:42e98f58f53d1a49fd734c2dd193880f2dfec3436a2993a00d06b8800a22a3f2', + 'com.madgag.spongycastle:core:1.58.0.0:core-1.58.0.0.jar:199617dd5698c5a9312b898c0a4cec7ce9dd8649d07f65d91629f58229d72728', 'com.rometools:rome-utils:1.12.1:rome-utils-1.12.1.jar:d65ce5f0926ee80e1ed19b176428846098000fc4db09360a1b4dd3a1a36ed477', 'com.rometools:rome:1.12.1:rome-1.12.1.jar:13414d70a6c185e1374588321861c6e9eb7928eee502d032094ef3ca0fd921ae', 'com.squareup.okhttp3:okhttp:3.12.6:okhttp-3.12.6.jar:ab45b9be99d9f070662b722cece5bdc2a0449fd34b9d5e51cdcd34663ae7b610', @@ -21,15 +52,19 @@ dependencyVerification { 'javax.annotation:jsr250-api:1.0:jsr250-api-1.0.jar:a1a922d0d9b6d183ed3800dfac01d1e1eb159f0e8c6f94736931c1def54a941f', 'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', 'junit:junit:4.12:junit-4.12.jar:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a', + 'net.i2p.crypto:eddsa:0.2.0:eddsa-0.2.0.jar:a7cb1b85c16e2f0730b9204106929a1d9aaae1df728adc7041a8b8b605692140', + 'net.java.dev.jna:jna:5.5.0:jna-5.5.0.aar:12ef4a3c2ea685c9c816caa6a77ae8f17bb7727d8460f249925409acda270101', 'net.jodah:concurrentunit:0.4.2:concurrentunit-0.4.2.jar:5583078e1acf91734939e985bc9e7ee947b0e93a8eef679da6bb07bbeb47ced3', 'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd', 'org.apache.ant:ant-launcher:1.9.4:ant-launcher-1.9.4.jar:7bccea20b41801ca17bcbc909a78c835d0f443f12d639c77bd6ae3d05861608d', 'org.apache.ant:ant:1.9.4:ant-1.9.4.jar:649ae0730251de07b8913f49286d46bba7b92d47c5f332610aa426c4f02161d8', 'org.beanshell:bsh:1.3.0:bsh-1.3.0.jar:9b04edc75d19db54f1b4e8b5355e9364384c6cf71eb0a1b9724c159d779879f8', 'org.checkerframework:checker-compat-qual:2.5.3:checker-compat-qual-2.5.3.jar:d76b9afea61c7c082908023f0cbc1427fab9abd2df915c8b8a3e7a509bccbc6d', + 'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a', 'org.checkerframework:checker-qual:2.5.2:checker-qual-2.5.2.jar:64b02691c8b9d4e7700f8ee2e742dce7ea2c6e81e662b7522c9ee3bf568c040a', 'org.codehaus.mojo.signature:java16:1.1:java16-1.1.signature:53799223a2c98dba2d0add810bed76315460df285c69e4f397ae6098f87dd619', 'org.codehaus.mojo:animal-sniffer-annotations:1.17:animal-sniffer-annotations-1.17.jar:92654f493ecfec52082e76354f0ebf87648dc3d5cec2e3c3cdb947c016747a53', + 'org.codehaus.mojo:animal-sniffer-annotations:1.18:animal-sniffer-annotations-1.18.jar:47f05852b48ee9baefef80fa3d8cea60efa4753c0013121dd7fe5eef2e5c729d', 'org.codehaus.mojo:animal-sniffer-ant-tasks:1.16:animal-sniffer-ant-tasks-1.16.jar:890040976fbe2d584619a6a61b1fd2e925b3b5eb342a85eb2762c467c0d64e90', 'org.codehaus.mojo:animal-sniffer:1.16:animal-sniffer-1.16.jar:72be8bcc226ba43b937c722a08a07852bfa1b11400089265d5df0ee7b38b1d52', 'org.hamcrest:hamcrest-core:1.3:hamcrest-core-1.3.jar:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9', @@ -40,9 +75,13 @@ dependencyVerification { 'org.jmock:jmock-testjar:2.8.2:jmock-testjar-2.8.2.jar:8900860f72c474e027cf97fe78dcbf154a1aa7fc62b6845c5fb4e4f3c7bc8760', 'org.jmock:jmock:2.8.2:jmock-2.8.2.jar:6c73cb4a2e6dbfb61fd99c9a768539c170ab6568e57846bd60dbf19596b65b16', 'org.jsoup:jsoup:1.11.3:jsoup-1.11.3.jar:df2c71a4240ecbdae7cdcd1667bcf0d747e4e3dcefe8161e787adcff7e5f2fa0', + 'org.magmacollective.darkcrystal:dark-crystal-key-backup-crypto:1.0.0:dark-crystal-key-backup-crypto-1.0.0.jar:7c808f30314f7bc0c715b53415b07bd7e9a6bbcc55e5f672a296e5298d335f78', + 'org.magmacollective.darkcrystal:dark-crystal-secret-sharing-wrapper:1.0.0:dark-crystal-secret-sharing-wrapper-1.0.0.aar:c31c51628a34f37ff7f61b6fe08536b4f9419f14ecb6aa9c1330c3ccbc44f637', + 'org.magmacollective.darkcrystal:shamir-secret-sharing-jna:1.0.0:shamir-secret-sharing-jna-1.0.0.aar:cdccfaf74dc1fcf30799a45d034c406315ce8507a8f4382eee118a66fb229ced', 'org.objenesis:objenesis:2.1:objenesis-2.1.jar:c74330cc6b806c804fd37e74487b4fe5d7c2750c5e15fbc6efa13bdee1bdef80', 'org.ow2.asm:asm-all:5.2:asm-all-5.2.jar:7fbffbc1db3422e2101689fd88df8384b15817b52b9b2b267b9f6d2511dc198d', 'org.ow2.asm:asm:5.0.4:asm-5.0.4.jar:896618ed8ae62702521a78bc7be42b7c491a08e6920a15f89a3ecdec31e9a220', 'org.slf4j:slf4j-api:1.7.16:slf4j-api-1.7.16.jar:e56288031f5e60652c06e7bb6e9fa410a61231ab54890f7b708fc6adc4107c5b', + 'org.whispersystems:curve25519-java:0.5.0:curve25519-java-0.5.0.jar:0aadd43cf01d11e9b58f867b3c4f25c3194e8b0623d1953d32dfbfbee009e38d', ] } From 808166931e33e2699a4053687705823ea56072f3 Mon Sep 17 00:00:00 2001 From: ameba23 Date: Tue, 2 Mar 2021 08:47:59 +0100 Subject: [PATCH 03/11] implement DarkCrystal in briar-android --- .../briar/android/socialbackup/DarkCrystalImpl.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DarkCrystalImpl.java diff --git a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DarkCrystalImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DarkCrystalImpl.java new file mode 100644 index 000000000..7c75acf46 --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DarkCrystalImpl.java @@ -0,0 +1,4 @@ +package org.briarproject.briar.android.socialbackup; + +public class DarkCrystalImpl { +} From f2638c9db2251e3ec774015cb3413c05d68884cb Mon Sep 17 00:00:00 2001 From: ameba23 Date: Tue, 2 Mar 2021 08:48:38 +0100 Subject: [PATCH 04/11] add SecretShardingWrapper as dependency of briar-android --- briar-android/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/briar-android/build.gradle b/briar-android/build.gradle index 3fddc9284..c587a4166 100644 --- a/briar-android/build.gradle +++ b/briar-android/build.gradle @@ -101,6 +101,7 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation 'com.google.android.material:material:1.2.1' implementation 'androidx.recyclerview:recyclerview-selection:1.1.0-rc03' + implementation 'org.magmacollective.darkcrystal:dark-crystal-secret-sharing-wrapper:1.0.0' implementation 'info.guardianproject.panic:panic:1.0' implementation 'info.guardianproject.trustedintents:trustedintents:0.2' From fbe839d9ca1a4f5db21d163ec577f5775f4f5949 Mon Sep 17 00:00:00 2001 From: ameba23 Date: Tue, 2 Mar 2021 08:49:09 +0100 Subject: [PATCH 05/11] rm SecretShardingWrapper as dependency of briar-core --- briar-core/build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/briar-core/build.gradle b/briar-core/build.gradle index a884762b6..14bc3aa16 100644 --- a/briar-core/build.gradle +++ b/briar-core/build.gradle @@ -15,7 +15,6 @@ dependencies { // okhttp 3.12.x is supported until end of 2020, newer versions need minSdk 21 implementation 'com.squareup.okhttp3:okhttp:3.12.6' implementation 'org.jsoup:jsoup:1.11.3' - implementation 'org.magmacollective.darkcrystal:dark-crystal-secret-sharing-wrapper:1.0.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.24' From 3c61f499d98b68f49c53d1253f4b584fb6d00466 Mon Sep 17 00:00:00 2001 From: ameba23 Date: Tue, 2 Mar 2021 08:49:57 +0100 Subject: [PATCH 06/11] updated witness.gradle files --- briar-android/witness.gradle | 9 +++++++++ briar-core/witness.gradle | 39 ------------------------------------ 2 files changed, 9 insertions(+), 39 deletions(-) diff --git a/briar-android/witness.gradle b/briar-android/witness.gradle index bc776f945..853f63b7f 100644 --- a/briar-android/witness.gradle +++ b/briar-android/witness.gradle @@ -110,6 +110,7 @@ dependencyVerification { 'com.google.auto:auto-common:0.8:auto-common-0.8.jar:97db1709f57b91b32edacb596ef4641872f227b7d99ad90e467f0d77f5ba134a', 'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', 'com.google.code.gson:gson:2.8.5:gson-2.8.5.jar:233a0149fc365c9f6edbd683cfe266b19bdc773be98eabdaf6b3c924b48e7d81', + 'com.google.code.gson:gson:2.8.6:gson-2.8.6.jar:c8fb4839054d280b3033f800d1f5a97de2f028eb8ba2eb458ad287e536f3f25f', 'com.google.dagger:dagger-compiler:2.24:dagger-compiler-2.24.jar:3c5afb955fb188da485cb2c048eff37dce0e1530b9780a0f2f7187d16d1ccc1f', 'com.google.dagger:dagger-producers:2.24:dagger-producers-2.24.jar:f10f45b95191954d5d6b043fca9e62fb621d21bf70634b8f8476c7988b504c3a', 'com.google.dagger:dagger-spi:2.24:dagger-spi-2.24.jar:c038445d14dbcb4054e61bf49e05009edf26fce4fdc7ec1a9db544784f68e718', @@ -127,12 +128,14 @@ dependencyVerification { 'com.google.j2objc:j2objc-annotations:1.1:j2objc-annotations-1.1.jar:2994a7eb78f2710bd3d3bfb639b2c94e219cedac0d4d084d516e78c16dddecf6', 'com.google.j2objc:j2objc-annotations:1.3:j2objc-annotations-1.3.jar:21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b', 'com.google.jimfs:jimfs:1.1:jimfs-1.1.jar:c4828e28d7c0a930af9387510b3bada7daa5c04d7c25a75c7b8b081f1c257ddd', + 'com.google.protobuf:protobuf-java-util:3.11.4:protobuf-java-util-3.11.4.jar:29aacfff1cc455102627d4cfe6f319e4864ea7ce1a4e9d03b4c7bb01fc8255b0', 'com.google.protobuf:protobuf-java:3.10.0:protobuf-java-3.10.0.jar:161d7d61a8cb3970891c299578702fd079646e032329d6c2cabf998d191437c9', 'com.google.protobuf:protobuf-java:3.11.4:protobuf-java-3.11.4.jar:42e98f58f53d1a49fd734c2dd193880f2dfec3436a2993a00d06b8800a22a3f2', 'com.google.zxing:core:3.3.3:core-3.3.3.jar:5820f81e943e4bce0329306621e2d6255d2930b0a6ce934c5c23c0d6d3f20599', 'com.googlecode.json-simple:json-simple:1.1:json-simple-1.1.jar:2d9484f4c649f708f47f9a479465fc729770ee65617dca3011836602264f6439', 'com.ibm.icu:icu4j:53.1:icu4j-53.1.jar:e37a4467bac5cdeb02c5c4b8e5063d2f4e67b69e3c7df6d6b610f13185572bab', 'com.jraska:falcon:2.1.1:falcon-2.1.1.aar:827f06556b7fa599f29a48a5277df39ca3dce5080d4ea6f9ea1f9c7b6b78bb7a', + 'com.madgag.spongycastle:core:1.58.0.0:core-1.58.0.0.jar:199617dd5698c5a9312b898c0a4cec7ce9dd8649d07f65d91629f58229d72728', 'com.squareup:javapoet:1.11.1:javapoet-1.11.1.jar:9cbf2107be499ec6e95afd36b58e3ca122a24166cdd375732e51267d64058e90', 'com.squareup:javawriter:2.1.1:javawriter-2.1.1.jar:f699823d0081f69cbb676c1845ea222e0ada79bc88a53e5d22d8bd02d328f57e', 'com.squareup:javawriter:2.5.0:javawriter-2.5.0.jar:fcfb09fb0ea0aa97d3cfe7ea792398081348e468f126b3603cb3803f240197f0', @@ -157,6 +160,8 @@ dependencyVerification { 'nekohtml:xercesMinimal:1.9.6.2:xercesMinimal-1.9.6.2.jar:95b8b357d19f63797dd7d67622fd3f18374d64acbc6584faba1c7759a31e8438', 'net.bytebuddy:byte-buddy-agent:1.9.10:byte-buddy-agent-1.9.10.jar:8ed739d29132103250d307d2e8e3c95f07588ef0543ab11d2881d00768a5e182', 'net.bytebuddy:byte-buddy:1.9.10:byte-buddy-1.9.10.jar:2936debc4d7b6c534848d361412e2d0f8bd06f7f27a6f4e728a20e97648d2bf3', + 'net.i2p.crypto:eddsa:0.2.0:eddsa-0.2.0.jar:a7cb1b85c16e2f0730b9204106929a1d9aaae1df728adc7041a8b8b605692140', + 'net.java.dev.jna:jna:5.5.0:jna-5.5.0.aar:12ef4a3c2ea685c9c816caa6a77ae8f17bb7727d8460f249925409acda270101', 'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd', 'net.sf.jopt-simple:jopt-simple:4.9:jopt-simple-4.9.jar:26c5856e954b5f864db76f13b86919b59c6eecf9fd930b96baa8884626baf2f5', 'net.sf.kxml:kxml2:2.3.0:kxml2-2.3.0.jar:f264dd9f79a1fde10ce5ecc53221eff24be4c9331c830b7d52f2f08a7b633de2', @@ -215,6 +220,9 @@ dependencyVerification { 'org.jmock:jmock-testjar:2.8.2:jmock-testjar-2.8.2.jar:8900860f72c474e027cf97fe78dcbf154a1aa7fc62b6845c5fb4e4f3c7bc8760', 'org.jmock:jmock:2.8.2:jmock-2.8.2.jar:6c73cb4a2e6dbfb61fd99c9a768539c170ab6568e57846bd60dbf19596b65b16', 'org.jvnet.staxex:stax-ex:1.8:stax-ex-1.8.jar:95b05d9590af4154c6513b9c5dc1fb2e55b539972ba0a9ef28e9a0c01d83ad77', + 'org.magmacollective.darkcrystal:dark-crystal-key-backup-crypto:1.0.0:dark-crystal-key-backup-crypto-1.0.0.jar:7c808f30314f7bc0c715b53415b07bd7e9a6bbcc55e5f672a296e5298d335f78', + 'org.magmacollective.darkcrystal:dark-crystal-secret-sharing-wrapper:1.0.0:dark-crystal-secret-sharing-wrapper-1.0.0.aar:c31c51628a34f37ff7f61b6fe08536b4f9419f14ecb6aa9c1330c3ccbc44f637', + 'org.magmacollective.darkcrystal:shamir-secret-sharing-jna:1.0.0:shamir-secret-sharing-jna-1.0.0.aar:cdccfaf74dc1fcf30799a45d034c406315ce8507a8f4382eee118a66fb229ced', 'org.mockito:mockito-core:3.1.0:mockito-core-3.1.0.jar:89b09e518e04f5c35f5ccf7abe45e72f594070a53d95cc2579001bd392c5afa6', 'org.objenesis:objenesis:2.6:objenesis-2.6.jar:5e168368fbc250af3c79aa5fef0c3467a2d64e5a7bd74005f25d8399aeb0708d', 'org.ow2.asm:asm-analysis:7.0:asm-analysis-7.0.jar:e981f8f650c4d900bb033650b18e122fa6b161eadd5f88978d08751f72ee8474', @@ -233,6 +241,7 @@ dependencyVerification { 'org.robolectric:shadows-framework:4.3.1:shadows-framework-4.3.1.jar:9c69db134cdd79be751856a148020fd9b32b086bb491846eedc0a1106fcadd5e', 'org.robolectric:utils-reflector:4.3.1:utils-reflector-4.3.1.jar:9d7bf2557947d44d6f3ed76ec5231e8b72e33eb61c65ac9e149ad307b0eb936c', 'org.robolectric:utils:4.3.1:utils-4.3.1.jar:6f9e406cd667019a5450e473c4e2d372bff9c9ab6ef55aafcbc9843109cb1519', + 'org.whispersystems:curve25519-java:0.5.0:curve25519-java-0.5.0.jar:0aadd43cf01d11e9b58f867b3c4f25c3194e8b0623d1953d32dfbfbee009e38d', 'tools.fastlane:screengrab:2.0.0:screengrab-2.0.0.aar:15ac15eb7c371db05e721be8d466567c2b7274b767d91478e781b6d89ee5d3d0', 'uk.co.samuelwall:material-tap-target-prompt:3.0.0:material-tap-target-prompt-3.0.0.aar:e4d3c472b2d378e39a6535b7788e6c790fc9dde2d7659974e006ed8c7260911d', ] diff --git a/briar-core/witness.gradle b/briar-core/witness.gradle index 4858cb1b3..603dd3432 100644 --- a/briar-core/witness.gradle +++ b/briar-core/witness.gradle @@ -1,49 +1,18 @@ dependencyVerification { verify = [ - 'androidx.activity:activity:1.0.0:activity-1.0.0.aar:d1bc9842455c2e534415d88c44df4d52413b478db9093a1ba36324f705f44c3d', - 'androidx.annotation:annotation:1.1.0:annotation-1.1.0.jar:d38d63edb30f1467818d50aaf05f8a692dea8b31392a049bfa991b159ad5b692', - 'androidx.appcompat:appcompat-resources:1.1.0:appcompat-resources-1.1.0.aar:19944d32b46551a17c347e21894b95837fbd7baaafc9e2082794344f222f7361', - 'androidx.appcompat:appcompat:1.1.0:appcompat-1.1.0.aar:8d7299bca44cb3bdf17f5595766acbf459fc81fee223e8686cc6acd3a42ab5c0', - 'androidx.arch.core:core-common:2.1.0:core-common-2.1.0.jar:fe1237bf029d063e7f29fe39aeaf73ef74c8b0a3658486fc29d3c54326653889', - 'androidx.arch.core:core-runtime:2.0.0:core-runtime-2.0.0.aar:87e65fc767c712b437649c7cee2431ebb4bed6daef82e501d4125b3ed3f65f8e', - 'androidx.collection:collection:1.1.0:collection-1.1.0.jar:632a0e5407461de774409352940e292a291037724207a787820c77daf7d33b72', - 'androidx.core:core:1.1.0:core-1.1.0.aar:76c7cfbe596fe3c09a6983bf1c89e889299c08ac9a3b52ce5182a088d056647e', - 'androidx.cursoradapter:cursoradapter:1.0.0:cursoradapter-1.0.0.aar:a81c8fe78815fa47df5b749deb52727ad11f9397da58b16017f4eb2c11e28564', - 'androidx.customview:customview:1.0.0:customview-1.0.0.aar:20e5b8f6526a34595a604f56718da81167c0b40a7a94a57daa355663f2594df2', - 'androidx.drawerlayout:drawerlayout:1.0.0:drawerlayout-1.0.0.aar:9402442cdc5a43cf62fb14f8cf98c63342d4d9d9b805c8033c6cf7e802749ac1', - 'androidx.fragment:fragment:1.1.0:fragment-1.1.0.aar:a14c8b8f2153f128e800fbd266a6beab1c283982a29ec570d2cc05d307d81496', - 'androidx.interpolator:interpolator:1.0.0:interpolator-1.0.0.aar:33193135a64fe21fa2c35eec6688f1a76e512606c0fc83dc1b689e37add7732a', - 'androidx.lifecycle:lifecycle-common:2.1.0:lifecycle-common-2.1.0.jar:76db6be533bd730fb361c2feb12a2c26d9952824746847da82601ef81f082643', - 'androidx.lifecycle:lifecycle-livedata-core:2.0.0:lifecycle-livedata-core-2.0.0.aar:fde334ec7e22744c0f5bfe7caf1a84c9d717327044400577bdf9bd921ec4f7bc', - 'androidx.lifecycle:lifecycle-livedata:2.0.0:lifecycle-livedata-2.0.0.aar:c82609ced8c498f0a701a30fb6771bb7480860daee84d82e0a81ee86edf7ba39', - 'androidx.lifecycle:lifecycle-runtime:2.1.0:lifecycle-runtime-2.1.0.aar:e5173897b965e870651e83d9d5af1742d3f532d58863223a390ce3a194c8312b', - 'androidx.lifecycle:lifecycle-viewmodel:2.1.0:lifecycle-viewmodel-2.1.0.aar:ba55fb7ac1b2828d5327cda8acf7085d990b2b4c43ef336caa67686249b8523d', - 'androidx.loader:loader:1.0.0:loader-1.0.0.aar:11f735cb3b55c458d470bed9e25254375b518b4b1bad6926783a7026db0f5025', - 'androidx.savedstate:savedstate:1.0.0:savedstate-1.0.0.aar:2510a5619c37579c9ce1a04574faaf323cd0ffe2fc4e20fa8f8f01e5bb402e83', - 'androidx.vectordrawable:vectordrawable-animated:1.1.0:vectordrawable-animated-1.1.0.aar:76da2c502371d9c38054df5e2b248d00da87809ed058f3363eae87ce5e2403f8', - 'androidx.vectordrawable:vectordrawable:1.1.0:vectordrawable-1.1.0.aar:46fd633ac01b49b7fcabc263bf098c5a8b9e9a69774d234edcca04fb02df8e26', - 'androidx.versionedparcelable:versionedparcelable:1.1.0:versionedparcelable-1.1.0.aar:9a1d77140ac222b7866b5054ee7d159bc1800987ed2d46dd6afdd145abb710c1', - 'androidx.viewpager:viewpager:1.0.0:viewpager-1.0.0.aar:147af4e14a1984010d8f155e5e19d781f03c1d70dfed02a8e0d18428b8fc8682', 'cglib:cglib:3.2.0:cglib-3.2.0.jar:adb13bab79712ad6bdf1bd59f2a3918018a8016e722e8a357065afb9e6690861', 'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', - 'com.google.code.gson:gson:2.8.6:gson-2.8.6.jar:c8fb4839054d280b3033f800d1f5a97de2f028eb8ba2eb458ad287e536f3f25f', 'com.google.dagger:dagger-compiler:2.24:dagger-compiler-2.24.jar:3c5afb955fb188da485cb2c048eff37dce0e1530b9780a0f2f7187d16d1ccc1f', 'com.google.dagger:dagger-producers:2.24:dagger-producers-2.24.jar:f10f45b95191954d5d6b043fca9e62fb621d21bf70634b8f8476c7988b504c3a', 'com.google.dagger:dagger-spi:2.24:dagger-spi-2.24.jar:c038445d14dbcb4054e61bf49e05009edf26fce4fdc7ec1a9db544784f68e718', 'com.google.dagger:dagger:2.24:dagger-2.24.jar:550a6e46a6dfcdf1d764887b6090cea94f783327e50e5c73754f18facfc70b64', 'com.google.errorprone:error_prone_annotations:2.2.0:error_prone_annotations-2.2.0.jar:6ebd22ca1b9d8ec06d41de8d64e0596981d9607b42035f9ed374f9de271a481a', - 'com.google.errorprone:error_prone_annotations:2.3.4:error_prone_annotations-2.3.4.jar:baf7d6ea97ce606c53e11b6854ba5f2ce7ef5c24dddf0afa18d1260bd25b002c', 'com.google.errorprone:javac-shaded:9-dev-r4023-3:javac-shaded-9-dev-r4023-3.jar:65bfccf60986c47fbc17c9ebab0be626afc41741e0a6ec7109e0768817a36f30', 'com.google.googlejavaformat:google-java-format:1.5:google-java-format-1.5.jar:aa19ad7850fb85178aa22f2fddb163b84d6ce4d0035872f30d4408195ca1144e', 'com.google.guava:failureaccess:1.0.1:failureaccess-1.0.1.jar:a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26', 'com.google.guava:guava:27.1-jre:guava-27.1-jre.jar:4a5aa70cc968a4d137e599ad37553e5cfeed2265e8c193476d7119036c536fe7', - 'com.google.guava:guava:28.1-android:guava-28.1-android.jar:e112ce92c0f0733965eede73d94589c59a72128b06b08bba5ebe2f9ea672ef60', 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99', 'com.google.j2objc:j2objc-annotations:1.1:j2objc-annotations-1.1.jar:2994a7eb78f2710bd3d3bfb639b2c94e219cedac0d4d084d516e78c16dddecf6', - 'com.google.j2objc:j2objc-annotations:1.3:j2objc-annotations-1.3.jar:21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b', - 'com.google.protobuf:protobuf-java-util:3.11.4:protobuf-java-util-3.11.4.jar:29aacfff1cc455102627d4cfe6f319e4864ea7ce1a4e9d03b4c7bb01fc8255b0', - 'com.google.protobuf:protobuf-java:3.11.4:protobuf-java-3.11.4.jar:42e98f58f53d1a49fd734c2dd193880f2dfec3436a2993a00d06b8800a22a3f2', - 'com.madgag.spongycastle:core:1.58.0.0:core-1.58.0.0.jar:199617dd5698c5a9312b898c0a4cec7ce9dd8649d07f65d91629f58229d72728', 'com.rometools:rome-utils:1.12.1:rome-utils-1.12.1.jar:d65ce5f0926ee80e1ed19b176428846098000fc4db09360a1b4dd3a1a36ed477', 'com.rometools:rome:1.12.1:rome-1.12.1.jar:13414d70a6c185e1374588321861c6e9eb7928eee502d032094ef3ca0fd921ae', 'com.squareup.okhttp3:okhttp:3.12.6:okhttp-3.12.6.jar:ab45b9be99d9f070662b722cece5bdc2a0449fd34b9d5e51cdcd34663ae7b610', @@ -52,19 +21,15 @@ dependencyVerification { 'javax.annotation:jsr250-api:1.0:jsr250-api-1.0.jar:a1a922d0d9b6d183ed3800dfac01d1e1eb159f0e8c6f94736931c1def54a941f', 'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', 'junit:junit:4.12:junit-4.12.jar:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a', - 'net.i2p.crypto:eddsa:0.2.0:eddsa-0.2.0.jar:a7cb1b85c16e2f0730b9204106929a1d9aaae1df728adc7041a8b8b605692140', - 'net.java.dev.jna:jna:5.5.0:jna-5.5.0.aar:12ef4a3c2ea685c9c816caa6a77ae8f17bb7727d8460f249925409acda270101', 'net.jodah:concurrentunit:0.4.2:concurrentunit-0.4.2.jar:5583078e1acf91734939e985bc9e7ee947b0e93a8eef679da6bb07bbeb47ced3', 'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd', 'org.apache.ant:ant-launcher:1.9.4:ant-launcher-1.9.4.jar:7bccea20b41801ca17bcbc909a78c835d0f443f12d639c77bd6ae3d05861608d', 'org.apache.ant:ant:1.9.4:ant-1.9.4.jar:649ae0730251de07b8913f49286d46bba7b92d47c5f332610aa426c4f02161d8', 'org.beanshell:bsh:1.3.0:bsh-1.3.0.jar:9b04edc75d19db54f1b4e8b5355e9364384c6cf71eb0a1b9724c159d779879f8', 'org.checkerframework:checker-compat-qual:2.5.3:checker-compat-qual-2.5.3.jar:d76b9afea61c7c082908023f0cbc1427fab9abd2df915c8b8a3e7a509bccbc6d', - 'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a', 'org.checkerframework:checker-qual:2.5.2:checker-qual-2.5.2.jar:64b02691c8b9d4e7700f8ee2e742dce7ea2c6e81e662b7522c9ee3bf568c040a', 'org.codehaus.mojo.signature:java16:1.1:java16-1.1.signature:53799223a2c98dba2d0add810bed76315460df285c69e4f397ae6098f87dd619', 'org.codehaus.mojo:animal-sniffer-annotations:1.17:animal-sniffer-annotations-1.17.jar:92654f493ecfec52082e76354f0ebf87648dc3d5cec2e3c3cdb947c016747a53', - 'org.codehaus.mojo:animal-sniffer-annotations:1.18:animal-sniffer-annotations-1.18.jar:47f05852b48ee9baefef80fa3d8cea60efa4753c0013121dd7fe5eef2e5c729d', 'org.codehaus.mojo:animal-sniffer-ant-tasks:1.16:animal-sniffer-ant-tasks-1.16.jar:890040976fbe2d584619a6a61b1fd2e925b3b5eb342a85eb2762c467c0d64e90', 'org.codehaus.mojo:animal-sniffer:1.16:animal-sniffer-1.16.jar:72be8bcc226ba43b937c722a08a07852bfa1b11400089265d5df0ee7b38b1d52', 'org.hamcrest:hamcrest-core:1.3:hamcrest-core-1.3.jar:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9', @@ -75,13 +40,9 @@ dependencyVerification { 'org.jmock:jmock-testjar:2.8.2:jmock-testjar-2.8.2.jar:8900860f72c474e027cf97fe78dcbf154a1aa7fc62b6845c5fb4e4f3c7bc8760', 'org.jmock:jmock:2.8.2:jmock-2.8.2.jar:6c73cb4a2e6dbfb61fd99c9a768539c170ab6568e57846bd60dbf19596b65b16', 'org.jsoup:jsoup:1.11.3:jsoup-1.11.3.jar:df2c71a4240ecbdae7cdcd1667bcf0d747e4e3dcefe8161e787adcff7e5f2fa0', - 'org.magmacollective.darkcrystal:dark-crystal-key-backup-crypto:1.0.0:dark-crystal-key-backup-crypto-1.0.0.jar:7c808f30314f7bc0c715b53415b07bd7e9a6bbcc55e5f672a296e5298d335f78', - 'org.magmacollective.darkcrystal:dark-crystal-secret-sharing-wrapper:1.0.0:dark-crystal-secret-sharing-wrapper-1.0.0.aar:c31c51628a34f37ff7f61b6fe08536b4f9419f14ecb6aa9c1330c3ccbc44f637', - 'org.magmacollective.darkcrystal:shamir-secret-sharing-jna:1.0.0:shamir-secret-sharing-jna-1.0.0.aar:cdccfaf74dc1fcf30799a45d034c406315ce8507a8f4382eee118a66fb229ced', 'org.objenesis:objenesis:2.1:objenesis-2.1.jar:c74330cc6b806c804fd37e74487b4fe5d7c2750c5e15fbc6efa13bdee1bdef80', 'org.ow2.asm:asm-all:5.2:asm-all-5.2.jar:7fbffbc1db3422e2101689fd88df8384b15817b52b9b2b267b9f6d2511dc198d', 'org.ow2.asm:asm:5.0.4:asm-5.0.4.jar:896618ed8ae62702521a78bc7be42b7c491a08e6920a15f89a3ecdec31e9a220', 'org.slf4j:slf4j-api:1.7.16:slf4j-api-1.7.16.jar:e56288031f5e60652c06e7bb6e9fa410a61231ab54890f7b708fc6adc4107c5b', - 'org.whispersystems:curve25519-java:0.5.0:curve25519-java-0.5.0.jar:0aadd43cf01d11e9b58f867b3c4f25c3194e8b0623d1953d32dfbfbee009e38d', ] } From 7da49ae6dfa9bd858cf7f4fa29ac8e31c634fc7e Mon Sep 17 00:00:00 2001 From: ameba23 Date: Tue, 2 Mar 2021 08:51:00 +0100 Subject: [PATCH 07/11] DarkCrystal implementation which calls SecretSharingWrapper --- .../android/socialbackup/DarkCrystalImpl.java | 44 ++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DarkCrystalImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DarkCrystalImpl.java index 7c75acf46..ed322c846 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DarkCrystalImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DarkCrystalImpl.java @@ -1,4 +1,46 @@ package org.briarproject.briar.android.socialbackup; +import org.briarproject.bramble.api.crypto.SecretKey; +import org.briarproject.briar.api.socialbackup.Shard; +import org.briarproject.briar.socialbackup.DarkCrystal; +import org.magmacollective.darkcrystal.secretsharingwrapper.SecretSharingWrapper; -public class DarkCrystalImpl { +import java.security.GeneralSecurityException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Random; + +import static org.briarproject.briar.socialbackup.SocialBackupConstants.SECRET_ID_BYTES; + +public class DarkCrystalImpl implements DarkCrystal { + + @Override + public List createShards(SecretKey secret, int numShards, + int threshold) { + Random random = new Random(); + byte[] secretId = new byte[SECRET_ID_BYTES]; + random.nextBytes(secretId); + List shardsBytes = SecretSharingWrapper.share(secret.getBytes(), numShards, threshold); + List shards = new ArrayList<>(numShards); + for (byte[] shardBytes : shardsBytes) { + shards.add(new Shard(secretId, shardBytes)); + } + return shards; + } + + @Override + public SecretKey combineShards(List shards) throws + GeneralSecurityException { + // Check each shard has the same secret Id + byte[] secretId = shards.get(0).getSecretId(); + for (Shard shard : shards) { + if (!Arrays.equals(shard.getSecretId(), secretId)) throw new GeneralSecurityException(); + } + List shardsBytes = new ArrayList<>(shards.size()); + for (Shard shard : shards) { + shardsBytes.add(shard.getShard()); + } + byte[] secretBytes = SecretSharingWrapper.combine(shardsBytes); + return new SecretKey(secretBytes); + } } From dc138c713fd7a23325fa2a53f3e55625c52cbfa9 Mon Sep 17 00:00:00 2001 From: ameba23 Date: Tue, 2 Mar 2021 08:52:16 +0100 Subject: [PATCH 08/11] make DarkCrystal interface public --- .../java/org/briarproject/briar/socialbackup/DarkCrystal.java | 1 + 1 file changed, 1 insertion(+) diff --git a/briar-core/src/main/java/org/briarproject/briar/socialbackup/DarkCrystal.java b/briar-core/src/main/java/org/briarproject/briar/socialbackup/DarkCrystal.java index da991acbe..52d4a05fe 100644 --- a/briar-core/src/main/java/org/briarproject/briar/socialbackup/DarkCrystal.java +++ b/briar-core/src/main/java/org/briarproject/briar/socialbackup/DarkCrystal.java @@ -8,6 +8,7 @@ import java.security.GeneralSecurityException; import java.util.List; @NotNullByDefault +public interface DarkCrystal { List createShards(SecretKey secret, int shards, int threshold); From b86b0f5fbc84df4da0816b9bf8b581582614cb9d Mon Sep 17 00:00:00 2001 From: ameba23 Date: Tue, 2 Mar 2021 08:52:43 +0100 Subject: [PATCH 09/11] make SocialBackupConstants public --- .../briarproject/briar/socialbackup/SocialBackupConstants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/briar-core/src/main/java/org/briarproject/briar/socialbackup/SocialBackupConstants.java b/briar-core/src/main/java/org/briarproject/briar/socialbackup/SocialBackupConstants.java index 924609a72..4de42b420 100644 --- a/briar-core/src/main/java/org/briarproject/briar/socialbackup/SocialBackupConstants.java +++ b/briar-core/src/main/java/org/briarproject/briar/socialbackup/SocialBackupConstants.java @@ -1,6 +1,6 @@ package org.briarproject.briar.socialbackup; -interface SocialBackupConstants { +public interface SocialBackupConstants { // Group metadata keys String GROUP_KEY_CONTACT_ID = "contactId"; From c7f6270b2ad3fdd06fe217076eabd921b6e1408a Mon Sep 17 00:00:00 2001 From: ameba23 Date: Tue, 2 Mar 2021 12:48:49 +0100 Subject: [PATCH 10/11] move DarkCrystal interface to briar-api --- .../briar/android/socialbackup/DarkCrystalImpl.java | 2 +- .../org/briarproject/briar/api}/socialbackup/DarkCrystal.java | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename {briar-core/src/main/java/org/briarproject/briar => briar-api/src/main/java/org/briarproject/briar/api}/socialbackup/DarkCrystal.java (100%) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DarkCrystalImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DarkCrystalImpl.java index ed322c846..af7041bd6 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DarkCrystalImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DarkCrystalImpl.java @@ -1,7 +1,7 @@ package org.briarproject.briar.android.socialbackup; import org.briarproject.bramble.api.crypto.SecretKey; import org.briarproject.briar.api.socialbackup.Shard; -import org.briarproject.briar.socialbackup.DarkCrystal; +import org.briarproject.briar.api.socialbackup.DarkCrystal; import org.magmacollective.darkcrystal.secretsharingwrapper.SecretSharingWrapper; import java.security.GeneralSecurityException; diff --git a/briar-core/src/main/java/org/briarproject/briar/socialbackup/DarkCrystal.java b/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/DarkCrystal.java similarity index 100% rename from briar-core/src/main/java/org/briarproject/briar/socialbackup/DarkCrystal.java rename to briar-api/src/main/java/org/briarproject/briar/api/socialbackup/DarkCrystal.java From d917e9d642dd0af2367d350abca728cecd30ab82 Mon Sep 17 00:00:00 2001 From: ameba23 Date: Tue, 2 Mar 2021 12:50:43 +0100 Subject: [PATCH 11/11] move DarkCrystal interface to briar-api - import it --- .../org/briarproject/briar/api/socialbackup/DarkCrystal.java | 3 +-- .../org/briarproject/briar/socialbackup/DarkCrystalStub.java | 1 + .../briar/socialbackup/SocialBackupManagerImpl.java | 1 + .../briarproject/briar/socialbackup/SocialBackupModule.java | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/DarkCrystal.java b/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/DarkCrystal.java index 52d4a05fe..19390e98f 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/DarkCrystal.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/DarkCrystal.java @@ -1,8 +1,7 @@ -package org.briarproject.briar.socialbackup; +package org.briarproject.briar.api.socialbackup; import org.briarproject.bramble.api.crypto.SecretKey; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; -import org.briarproject.briar.api.socialbackup.Shard; import java.security.GeneralSecurityException; import java.util.List; diff --git a/briar-core/src/main/java/org/briarproject/briar/socialbackup/DarkCrystalStub.java b/briar-core/src/main/java/org/briarproject/briar/socialbackup/DarkCrystalStub.java index 6671b14ff..80b339f79 100644 --- a/briar-core/src/main/java/org/briarproject/briar/socialbackup/DarkCrystalStub.java +++ b/briar-core/src/main/java/org/briarproject/briar/socialbackup/DarkCrystalStub.java @@ -2,6 +2,7 @@ package org.briarproject.briar.socialbackup; import org.briarproject.bramble.api.crypto.SecretKey; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; +import org.briarproject.briar.api.socialbackup.DarkCrystal; import org.briarproject.briar.api.socialbackup.Shard; import java.security.GeneralSecurityException; diff --git a/briar-core/src/main/java/org/briarproject/briar/socialbackup/SocialBackupManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/socialbackup/SocialBackupManagerImpl.java index f864d9427..c0a187603 100644 --- a/briar-core/src/main/java/org/briarproject/briar/socialbackup/SocialBackupManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/socialbackup/SocialBackupManagerImpl.java @@ -39,6 +39,7 @@ import org.briarproject.bramble.api.versioning.ClientVersioningManager; import org.briarproject.bramble.api.versioning.ClientVersioningManager.ClientVersioningHook; import org.briarproject.briar.api.socialbackup.BackupExistsException; import org.briarproject.briar.api.socialbackup.BackupMetadata; +import org.briarproject.briar.api.socialbackup.DarkCrystal; import org.briarproject.briar.api.socialbackup.Shard; import org.briarproject.briar.api.socialbackup.SocialBackupManager; diff --git a/briar-core/src/main/java/org/briarproject/briar/socialbackup/SocialBackupModule.java b/briar-core/src/main/java/org/briarproject/briar/socialbackup/SocialBackupModule.java index 4e568b4af..c2fb34c54 100644 --- a/briar-core/src/main/java/org/briarproject/briar/socialbackup/SocialBackupModule.java +++ b/briar-core/src/main/java/org/briarproject/briar/socialbackup/SocialBackupModule.java @@ -7,6 +7,7 @@ import org.briarproject.bramble.api.lifecycle.LifecycleManager; import org.briarproject.bramble.api.sync.validation.ValidationManager; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.versioning.ClientVersioningManager; +import org.briarproject.briar.api.socialbackup.DarkCrystal; import org.briarproject.briar.api.socialbackup.SocialBackupManager; import javax.inject.Inject;