kopia lustrzana https://github.com/ryukoposting/Signal-Android
Introduce Wire for proto codegen.
rodzic
72449fd73e
commit
a91a13cead
|
@ -9,8 +9,10 @@ apply from: 'translations.gradle'
|
|||
apply plugin: 'org.jetbrains.kotlin.android'
|
||||
apply plugin: 'app.cash.exhaustive'
|
||||
apply plugin: 'kotlin-parcelize'
|
||||
apply plugin: 'com.squareup.wire'
|
||||
apply from: 'static-ips.gradle'
|
||||
|
||||
|
||||
repositories {
|
||||
maven {
|
||||
url "https://raw.githubusercontent.com/signalapp/maven/master/sqlcipher/release/"
|
||||
|
@ -47,6 +49,16 @@ protobuf {
|
|||
}
|
||||
}
|
||||
|
||||
wire {
|
||||
kotlin {
|
||||
javaInterop = true
|
||||
}
|
||||
|
||||
sourcePath {
|
||||
srcDir 'src/main/protowire'
|
||||
}
|
||||
}
|
||||
|
||||
ktlint {
|
||||
// Use a newer version to resolve https://github.com/JLLeitschuh/ktlint-gradle/issues/507
|
||||
version = "0.43.2"
|
||||
|
|
|
@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.absbackup.backupables
|
|||
import com.google.protobuf.InvalidProtocolBufferException
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.absbackup.AndroidBackupItem
|
||||
import org.thoughtcrime.securesms.absbackup.ExternalBackupProtos
|
||||
import org.thoughtcrime.securesms.absbackup.protos.KbsAuthToken
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
|
||||
/**
|
||||
|
@ -18,10 +18,8 @@ object KbsAuthTokens : AndroidBackupItem {
|
|||
|
||||
override fun getDataForBackup(): ByteArray {
|
||||
val registrationRecoveryTokenList = SignalStore.kbsValues().kbsAuthTokenList
|
||||
val proto = ExternalBackupProtos.KbsAuthToken.newBuilder()
|
||||
.addAllToken(registrationRecoveryTokenList)
|
||||
.build()
|
||||
return proto.toByteArray()
|
||||
val proto = KbsAuthToken(tokens = registrationRecoveryTokenList)
|
||||
return proto.encode()
|
||||
}
|
||||
|
||||
override fun restoreData(data: ByteArray) {
|
||||
|
@ -30,9 +28,9 @@ object KbsAuthTokens : AndroidBackupItem {
|
|||
}
|
||||
|
||||
try {
|
||||
val proto = ExternalBackupProtos.KbsAuthToken.parseFrom(data)
|
||||
val proto = KbsAuthToken.ADAPTER.decode(data)
|
||||
|
||||
SignalStore.kbsValues().putAuthTokenList(proto.tokenList)
|
||||
SignalStore.kbsValues().putAuthTokenList(proto.tokens)
|
||||
} catch (e: InvalidProtocolBufferException) {
|
||||
Log.w(TAG, "Cannot restore KbsAuthToken from backup service.")
|
||||
}
|
||||
|
|
|
@ -29,13 +29,14 @@ import java.security.MessageDigest;
|
|||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.Mac;
|
||||
import javax.crypto.spec.IvParameterSpec;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
|
||||
import static org.thoughtcrime.securesms.devicelist.DeviceNameProtos.DeviceName;
|
||||
import org.thoughtcrime.securesms.devicelist.protos.DeviceName;
|
||||
|
||||
public class DeviceListLoader extends AsyncLoader<List<Device>> {
|
||||
|
||||
|
@ -71,9 +72,9 @@ public class DeviceListLoader extends AsyncLoader<List<Device>> {
|
|||
throw new IOException("Invalid DeviceInfo name.");
|
||||
}
|
||||
|
||||
DeviceName deviceName = DeviceName.parseFrom(Base64.decode(deviceInfo.getName()));
|
||||
DeviceName deviceName = DeviceName.ADAPTER.decode(Base64.decode(deviceInfo.getName()));
|
||||
|
||||
if (!deviceName.hasCiphertext() || !deviceName.hasEphemeralPublic() || !deviceName.hasSyntheticIv()) {
|
||||
if (deviceName.ciphertext == null || deviceName.ephemeralPublic == null || deviceName.syntheticIv == null) {
|
||||
throw new IOException("Got a DeviceName that wasn't properly populated.");
|
||||
}
|
||||
|
||||
|
@ -90,10 +91,10 @@ public class DeviceListLoader extends AsyncLoader<List<Device>> {
|
|||
|
||||
@VisibleForTesting
|
||||
public static byte[] decryptName(DeviceName deviceName, IdentityKeyPair identityKeyPair) throws InvalidKeyException, GeneralSecurityException {
|
||||
byte[] syntheticIv = deviceName.getSyntheticIv().toByteArray();
|
||||
byte[] cipherText = deviceName.getCiphertext().toByteArray();
|
||||
byte[] syntheticIv = Objects.requireNonNull(deviceName.syntheticIv).toByteArray();
|
||||
byte[] cipherText = Objects.requireNonNull(deviceName.ciphertext).toByteArray();
|
||||
ECPrivateKey identityKey = identityKeyPair.getPrivateKey();
|
||||
ECPublicKey ephemeralPublic = Curve.decodePoint(deviceName.getEphemeralPublic().toByteArray(), 0);
|
||||
ECPublicKey ephemeralPublic = Curve.decodePoint(Objects.requireNonNull(deviceName.ephemeralPublic).toByteArray(), 0);
|
||||
byte[] masterSecret = Curve.calculateAgreement(ephemeralPublic, identityKey);
|
||||
|
||||
Mac mac = Mac.getInstance("HmacSHA256");
|
||||
|
|
|
@ -116,13 +116,13 @@ object JumboEmoji {
|
|||
Log.i(TAG, "No file for emoji, downloading jumbo")
|
||||
EmojiDownloader.streamFileFromRemote(version, version.density, archiveName) { stream ->
|
||||
stream.use { remote ->
|
||||
val jumbomojiPack = JumbomojiPack.parseFrom(remote)
|
||||
val jumbomojiPack = JumbomojiPack.ADAPTER.decode(remote)
|
||||
|
||||
jumbomojiPack.itemsList.forEach { jumbo ->
|
||||
jumbomojiPack.items.forEach { jumbo ->
|
||||
val emojiNameEntry = EmojiFiles.Name(jumbo.name, UUID.randomUUID())
|
||||
val outputStream = EmojiFiles.openForWriting(applicationContext, version, emojiNameEntry.uuid)
|
||||
|
||||
outputStream.use { jumbo.image.writeTo(it) }
|
||||
outputStream.use { jumbo.image.write(it) }
|
||||
|
||||
jumbos = EmojiFiles.JumboCollection.append(applicationContext, jumbos, emojiNameEntry)
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package org.thoughtcrime.securesms.registration.secondary
|
||||
|
||||
import com.google.protobuf.ByteString
|
||||
import okio.ByteString.Companion.toByteString
|
||||
import org.signal.libsignal.protocol.IdentityKeyPair
|
||||
import org.signal.libsignal.protocol.ecc.Curve
|
||||
import org.signal.libsignal.protocol.ecc.ECKeyPair
|
||||
import org.thoughtcrime.securesms.devicelist.DeviceNameProtos
|
||||
import org.thoughtcrime.securesms.devicelist.protos.DeviceName
|
||||
import java.nio.charset.Charset
|
||||
import javax.crypto.Cipher
|
||||
import javax.crypto.Mac
|
||||
|
@ -30,12 +30,11 @@ object DeviceNameCipher {
|
|||
cipher.init(Cipher.ENCRYPT_MODE, SecretKeySpec(cipherKey, "AES"), IvParameterSpec(ByteArray(16)))
|
||||
val cipherText = cipher.doFinal(plaintext)
|
||||
|
||||
return DeviceNameProtos.DeviceName.newBuilder()
|
||||
.setEphemeralPublic(ByteString.copyFrom(ephemeralKeyPair.publicKey.serialize()))
|
||||
.setSyntheticIv(ByteString.copyFrom(syntheticIv))
|
||||
.setCiphertext(ByteString.copyFrom(cipherText))
|
||||
.build()
|
||||
.toByteArray()
|
||||
return DeviceName(
|
||||
ephemeralPublic = ephemeralKeyPair.publicKey.serialize().toByteString(),
|
||||
syntheticIv = syntheticIv.toByteString(),
|
||||
ciphertext = cipherText.toByteString()
|
||||
).encode()
|
||||
}
|
||||
|
||||
private fun computeCipherKey(masterSecret: ByteArray, syntheticIv: ByteArray): ByteArray {
|
||||
|
|
|
@ -8,8 +8,7 @@ syntax = "proto2";
|
|||
|
||||
package signalservice;
|
||||
|
||||
option java_package = "org.thoughtcrime.securesms.devicelist";
|
||||
option java_outer_classname = "DeviceNameProtos";
|
||||
option java_package = "org.thoughtcrime.securesms.devicelist.protos";
|
||||
|
||||
message DeviceName {
|
||||
optional bytes ephemeralPublic = 1;
|
|
@ -8,9 +8,8 @@ syntax = "proto3";
|
|||
|
||||
package signal;
|
||||
|
||||
option java_package = "org.thoughtcrime.securesms.absbackup";
|
||||
option java_outer_classname = "ExternalBackupProtos";
|
||||
option java_package = "org.thoughtcrime.securesms.absbackup.protos";
|
||||
|
||||
message KbsAuthToken {
|
||||
repeated string token = 1;
|
||||
repeated string tokens = 1;
|
||||
}
|
|
@ -5,7 +5,7 @@ import org.hamcrest.Matchers.`is`
|
|||
import org.junit.Test
|
||||
import org.thoughtcrime.securesms.crypto.IdentityKeyUtil
|
||||
import org.thoughtcrime.securesms.database.loaders.DeviceListLoader
|
||||
import org.thoughtcrime.securesms.devicelist.DeviceNameProtos
|
||||
import org.thoughtcrime.securesms.devicelist.protos.DeviceName
|
||||
import java.nio.charset.Charset
|
||||
|
||||
class DeviceNameCipherTest {
|
||||
|
@ -17,7 +17,7 @@ class DeviceNameCipherTest {
|
|||
|
||||
val encryptedDeviceName = DeviceNameCipher.encryptDeviceName(deviceName.toByteArray(Charset.forName("UTF-8")), identityKeyPair)
|
||||
|
||||
val plaintext = DeviceListLoader.decryptName(DeviceNameProtos.DeviceName.parseFrom(encryptedDeviceName), identityKeyPair)
|
||||
val plaintext = DeviceListLoader.decryptName(DeviceName.ADAPTER.decode(encryptedDeviceName), identityKeyPair)
|
||||
|
||||
assertThat(String(plaintext, Charset.forName("UTF-8")), `is`(deviceName))
|
||||
}
|
||||
|
|
|
@ -24,6 +24,13 @@ buildscript {
|
|||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
classpath "org.jlleitschuh.gradle:ktlint-gradle:10.2.1"
|
||||
classpath 'app.cash.exhaustive:exhaustive-gradle:0.1.1'
|
||||
classpath ('com.squareup.wire:wire-gradle-plugin:4.4.3') {
|
||||
exclude group: 'com.squareup.wire', module: 'wire-swift-generator'
|
||||
exclude group: 'com.squareup.wire', module: 'wire-grpc-client'
|
||||
exclude group: 'com.squareup.wire', module: 'wire-grpc-jvm'
|
||||
exclude group: 'com.squareup.wire', module: 'wire-grpc-server-generator'
|
||||
exclude group: 'io.outfoxx', module: 'swiftpoet'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1501,6 +1501,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
|||
<sha256 value="7891debb84b5f83e9bd57593ebece3399abbe0fd938cf306b3534c57913b9615" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.charleskorn.kaml" name="kaml" version="0.20.0">
|
||||
<artifact name="kaml-0.20.0.jar">
|
||||
<sha256 value="0746f87e0668e41bbd086d34e7d207df21b6d290d1c203950cb7c79f55245884" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="kaml-0.20.0.module">
|
||||
<sha256 value="fe565bb22b04c8538d8696e9f773b36c7e0190fe826f29ccc158bafeca618630" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.codewaves.stickyheadergrid" name="stickyheadergrid" version="0.9.4">
|
||||
<artifact name="stickyheadergrid-0.9.4.aar">
|
||||
<sha256 value="5b4aa6a52a957cfd55f60f4220c11c0c371385a3cb9786cae03c260dcdef5794" origin="Generated by Gradle"/>
|
||||
|
@ -1948,6 +1956,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
|||
<sha256 value="f1dd23f8ae34a8e91366723991ead0d6499d1a3e9163ce550c200b02d76a872b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.errorprone" name="error_prone_annotations" version="2.11.0">
|
||||
<artifact name="error_prone_annotations-2.11.0.jar">
|
||||
<sha256 value="721cb91842b46fa056847d104d5225c8b8e1e8b62263b993051e1e5a0137b7ec" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.errorprone" name="error_prone_annotations" version="2.14.0">
|
||||
<artifact name="error_prone_annotations-2.14.0.jar">
|
||||
<sha256 value="1494e24e7bd5496e7d6f705169dddd46081cefb882ea4fc60b4a58ca50767f34" origin="Generated by Gradle"/>
|
||||
|
@ -2093,6 +2106,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
|||
<sha256 value="32ac2ed709d96d278b5d2e3e5cea178fa4939939c525fb647532f013308db309" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="guava" version="31.1-jre">
|
||||
<artifact name="guava-31.1-jre.jar">
|
||||
<sha256 value="a42edc9cab792e39fe39bb94f3fca655ed157ff87a8af78e1d6ba5b07c4a00ab" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="listenablefuture" version="1.0">
|
||||
<artifact name="listenablefuture-1.0.jar">
|
||||
<sha256 value="e4ad7607e5c0477c6f890ef26a49cb8d1bb4dffb650bab4502afee64644e3069" origin="Generated by Gradle"/>
|
||||
|
@ -2473,6 +2491,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
|||
<sha256 value="fcfb09fb0ea0aa97d3cfe7ea792398081348e468f126b3603cb3803f240197f0" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup" name="kotlinpoet" version="1.12.0">
|
||||
<artifact name="kotlinpoet-1.12.0.jar">
|
||||
<sha256 value="8e3f7849cdfb5376c87aca4cd40a6b96fbb02ddf060b6211099f5d15211171ce" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="kotlinpoet-1.12.0.module">
|
||||
<sha256 value="2cd09d68d118d9eb1ef949ef9f066e54fdab9a4e986fdf753e0a8f1da7a10e3a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup" name="kotlinpoet" version="1.8.0">
|
||||
<artifact name="kotlinpoet-1.8.0.jar">
|
||||
<sha256 value="a4f7f1f1306a97740b2c18c6089cddf65626764c4cd848aa83363681268e57f0" origin="Generated by Gradle"/>
|
||||
|
@ -2579,6 +2605,19 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
|||
<sha256 value="508234e024ef7e270ab1a6d5b356f5b98e786511239ca986d684fd1e2cf7bc82" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup.okhttp3" name="okhttp" version="4.9.3">
|
||||
<artifact name="okhttp-4.9.3.jar">
|
||||
<sha256 value="93ecd6cba19d87dccfe566ec848d91aae799e3cf16c00709358ea69bd9227219" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="okhttp-4.9.3.module">
|
||||
<sha256 value="8327fe576723986ded4afa5e0d9e132ae302ccf56f213c0db821a7404d40f8ef" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup.okhttp3" name="okhttp-bom" version="4.9.3">
|
||||
<artifact name="okhttp-bom-4.9.3.module">
|
||||
<sha256 value="86f90a09a87639ba6a327b7934a12507a66ddca8a6bee772dddd92232f3b06c9" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup.okio" name="okio" version="1.15.0">
|
||||
<artifact name="okio-1.15.0.jar">
|
||||
<sha256 value="693fa319a7e8843300602b204023b7674f106ebcb577f2dd5807212b66118bd2" origin="Generated by Gradle"/>
|
||||
|
@ -2594,6 +2633,88 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
|||
<sha256 value="e58c97406a6bb1138893750299ac63c6aa04b38b6b49eae1bfcad1a63ef9ba1b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup.okio" name="okio" version="3.0.0">
|
||||
<artifact name="okio-3.0.0.module">
|
||||
<sha256 value="6f9e3a797831e75c5b562d946c075183f9b2be846791e9f88bde45491daed987" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="okio-metadata-3.0.0.jar">
|
||||
<sha256 value="dcbe63ed43b2c90c325e9e6a0863e2e7605980bff5e728c6de1088be5574979e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup.okio" name="okio-bom" version="3.0.0">
|
||||
<artifact name="okio-bom-3.0.0.module">
|
||||
<sha256 value="fb5d398df7754d9a95279ff09f1292ebf8dc145008f046a2710c07637aff0e69" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup.okio" name="okio-jvm" version="3.0.0">
|
||||
<artifact name="okio-jvm-3.0.0.jar">
|
||||
<sha256 value="be64a0cc1f28ea9cd5c970dd7e7557af72c808d738c495b397bf897c9921e907" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="okio-jvm-3.0.0.module">
|
||||
<sha256 value="17f48d41775bd84dea78e9dfed8dfbcc66af80567a5c9ec9d9608785ec820cde" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup.wire" name="wire-compiler" version="4.4.3">
|
||||
<artifact name="wire-compiler-4.4.3.jar">
|
||||
<sha256 value="3927416764234a9e981e4bd49068760bed327a1056476a85a00fcfec1e3f5976" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="wire-compiler-4.4.3.module">
|
||||
<sha256 value="51748c8450895d7a6d798f11b2646e6e919d55834bb8a0fb8f0d873f0bb54d88" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup.wire" name="wire-gradle-plugin" version="4.4.3">
|
||||
<artifact name="wire-gradle-plugin-4.4.3.jar">
|
||||
<sha256 value="795d885379d1b624abb7db724270abd4e10aac41c17afacdb92c3bd85e6ca6a7" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="wire-gradle-plugin-4.4.3.module">
|
||||
<sha256 value="113849267bd3d0e15363cef2d005ba66bd09a20235ff523cf04852549522f4e8" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup.wire" name="wire-java-generator" version="4.4.3">
|
||||
<artifact name="wire-java-generator-4.4.3.jar">
|
||||
<sha256 value="0e79ff3578c23ef60a544ffe2daed4b19fc03bb417d350d29c8a30f3d5c939d9" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="wire-java-generator-4.4.3.module">
|
||||
<sha256 value="43faa7d0965f9d74c1df22ef9fc4c965e0ac29b770b8ce942c7bfeb2ed4b44d2" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup.wire" name="wire-kotlin-generator" version="4.4.3">
|
||||
<artifact name="wire-kotlin-generator-4.4.3.jar">
|
||||
<sha256 value="063ec3154dc99206aeb229ba7d9306d69ad8759244682cad3b6dda815cadb64c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="wire-kotlin-generator-4.4.3.module">
|
||||
<sha256 value="283fb66d5c9d466972a96b365f6dbb64c26b77fafff2fca15befc1c5155e1521" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup.wire" name="wire-runtime" version="4.4.3">
|
||||
<artifact name="wire-runtime-4.4.3.module">
|
||||
<sha256 value="7c66b05bc09c9cead5794a9708fedce6a39217fea16558d2a799fdf702537675" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="wire-runtime-metadata-4.4.3.jar">
|
||||
<sha256 value="3f350a77f7c241d6612d44859e27c8999b5ce2a47baaad7277ba3b7d450b4818" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup.wire" name="wire-runtime-jvm" version="4.4.3">
|
||||
<artifact name="wire-runtime-jvm-4.4.3.jar">
|
||||
<sha256 value="d3c0cc527e7a3dcaf59e3ae41e382dd0f62dfef3043911a7768e3787dc0b6335" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="wire-runtime-jvm-4.4.3.module">
|
||||
<sha256 value="b02d3bd2e4929ccb0ab36c88b569b10fc27b360711ee1718126a3b11b317d7f7" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup.wire" name="wire-schema" version="4.4.3">
|
||||
<artifact name="wire-schema-4.4.3.module">
|
||||
<sha256 value="44c4bf54631537be1e096d09e5557f801f4e93f853ed5830168483c6cd4c832b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup.wire" name="wire-schema-jvm" version="4.4.3">
|
||||
<artifact name="wire-schema-jvm-4.4.3.jar">
|
||||
<sha256 value="8c1c0cf41ca426ac018416326b6b2d938b2545a562a661c47ac468239177ce69" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="wire-schema-jvm-4.4.3.module">
|
||||
<sha256 value="13682702b39853268ed3d9d013d2a5f3e2e0f63a62bd6c68d2e392c977213e5e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.sun.activation" name="javax.activation" version="1.2.0">
|
||||
<artifact name="javax.activation-1.2.0.jar">
|
||||
<sha256 value="993302b16cd7056f21e779cc577d175a810bb4900ef73cd8fbf2b50f928ba9ce" origin="Generated by Gradle"/>
|
||||
|
@ -3702,6 +3823,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
|||
<sha256 value="1e1f57209f7238c3fd1735a1b9339a56565507dca249f8371bf59d91f601aeaa" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-reflect" version="1.7.0">
|
||||
<artifact name="kotlin-reflect-1.7.0.jar">
|
||||
<sha256 value="d22146070957a44360006837873c51b6602c96a819576b40fdabcd95b7740771" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-reflect" version="1.7.10">
|
||||
<artifact name="kotlin-reflect-1.7.10.jar">
|
||||
<sha256 value="187c5e5a588a6ed18c3a41b54df138a5944121bdb396be1c3fa4abee67397955" origin="Generated by Gradle"/>
|
||||
|
@ -3817,6 +3943,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
|||
<sha256 value="739c526672bb337573b28f63afa8306eb088b0c3a0967f56d6c89f4a3012a492" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="1.7.0">
|
||||
<artifact name="kotlin-stdlib-1.7.0.jar">
|
||||
<sha256 value="aa88e9625577957f3249a46cb6e166ee09b369e600f7a11d148d16b0a6d87f05" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="1.7.10">
|
||||
<artifact name="kotlin-stdlib-1.7.10.jar">
|
||||
<sha256 value="e771fe74250a943e8f6346713201ff1d8cb95c3a5d1a91a22b65a9e04f6a8901" origin="Generated by Gradle"/>
|
||||
|
@ -3867,11 +3998,21 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
|||
<sha256 value="dfa2a18e26b028388ee1968d199bf6f166f737ab7049c25a5e2da614404e22ad" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.6.10">
|
||||
<artifact name="kotlin-stdlib-common-1.6.10.jar">
|
||||
<sha256 value="280ddd0994e4560c9a49ee81c1b047ddc2b8f2176159475066025b474b37effd" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.6.21">
|
||||
<artifact name="kotlin-stdlib-common-1.6.21.jar">
|
||||
<sha256 value="183bec59cd9f3a14957b190e8c879cf1194bd1f106b0a7b6e1cbb8790d242363" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.7.0">
|
||||
<artifact name="kotlin-stdlib-common-1.7.0.jar">
|
||||
<sha256 value="59c6ff64fe9a6604afce03e8aaa75f83586c6030ac71fb0b34ee7cdefed3618f" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.7.10">
|
||||
<artifact name="kotlin-stdlib-common-1.7.10.jar">
|
||||
<sha256 value="19f102efe9629f8eabc63853ad15c533e47c47f91fca09285c5bde86e59f91d4" origin="Generated by Gradle"/>
|
||||
|
@ -3917,6 +4058,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
|||
<sha256 value="f1b0634dbb94172038463020bb2dd45ca26849f8ce29d625acb0f1569d11dbee" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.7.0">
|
||||
<artifact name="kotlin-stdlib-jdk7-1.7.0.jar">
|
||||
<sha256 value="07e91be9b2ca20672d2bdb7e181b766e73453a2da13492b5ddaee8fa47aea239" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.7.10">
|
||||
<artifact name="kotlin-stdlib-jdk7-1.7.10.jar">
|
||||
<sha256 value="54f61351b1936ad88f4e53059fe781e723eae51d78ed9e7422d8b403574ec682" origin="Generated by Gradle"/>
|
||||
|
@ -3962,6 +4108,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
|||
<sha256 value="dab45489b47736d59fce44b80676f1947a9b6bcab10fd60e878a83bd82a6954c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.7.0">
|
||||
<artifact name="kotlin-stdlib-jdk8-1.7.0.jar">
|
||||
<sha256 value="cf058e11db1dfc9944680c8c61b95ac689aaaa8a3eb30bced028100f038f030b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.7.10">
|
||||
<artifact name="kotlin-stdlib-jdk8-1.7.10.jar">
|
||||
<sha256 value="8aafdd60c94f454c92e5066d266a5ed53ecc63c78f623b3fd9db56fea4032873" origin="Generated by Gradle"/>
|
||||
|
@ -4133,11 +4284,24 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
|||
<sha256 value="c075dc88140a6ab48a6657113fa0b587ddfa82640a4672247dafc0de208f1192" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlinx" name="kotlinx-serialization-core" version="1.0.1">
|
||||
<artifact name="kotlinx-serialization-core-1.0.1.module">
|
||||
<sha256 value="9d0f1f6db25e394c89d58838eaebf3eabe360ef8ceb98aa3b9a4283532a54077" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlinx" name="kotlinx-serialization-core" version="1.1.0">
|
||||
<artifact name="kotlinx-serialization-core-1.1.0.module">
|
||||
<sha256 value="a21890616c068b55580ca3cf008b3d5d7f9613c980b754b4ad5a5bf74e8babf5" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlinx" name="kotlinx-serialization-core-jvm" version="1.0.1">
|
||||
<artifact name="kotlinx-serialization-core-jvm-1.0.1.jar">
|
||||
<sha256 value="16dd687a3c4b8ac09eb20859da8c80372dca494d321e2c64823848ccd7f23651" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="kotlinx-serialization-core-jvm-1.0.1.module">
|
||||
<sha256 value="d07d3406b27056251e0e3e0e1f74f532e54d28b2b6596dea49b633f6e5699d43" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlinx" name="kotlinx-serialization-core-jvm" version="1.1.0">
|
||||
<artifact name="kotlinx-serialization-core-jvm-1.1.0.jar">
|
||||
<sha256 value="69d18c700cfdf207b3e9bf6f5d58e7de08482d9e34d7c2a0adcb1db8082df943" origin="Generated by Gradle"/>
|
||||
|
@ -4628,6 +4792,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
|||
<sha256 value="d7de146d2b6dc9d0b75cb6c7ff17ca68ef24049dc6038b84b5f6b22cd00ddd46" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.snakeyaml" name="snakeyaml-engine" version="2.1">
|
||||
<artifact name="snakeyaml-engine-2.1.jar">
|
||||
<sha256 value="7007cb15171fb188e0e2abc5ea6f4f97b39cd1f86db6c2cd1b7300d0db67b021" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.tensorflow" name="tensorflow-lite-metadata" version="0.1.0-rc2">
|
||||
<artifact name="tensorflow-lite-metadata-0.1.0-rc2.jar">
|
||||
<sha256 value="2c2a264f842498c36d34d2a7b91342490d9a962862c85baac1acd54ec2fca6d9" origin="Generated by Gradle"/>
|
||||
|
|
Ładowanie…
Reference in New Issue