Compare commits
12 commits
unofficial
...
main
Author | SHA1 | Date | |
---|---|---|---|
7bfa3bc807 | |||
|
215952a8dd | ||
|
75a6299076 | ||
|
ebf97bd571 | ||
|
abfe60edbe | ||
d6cde14350 | |||
5173711b10 | |||
186d7ec602 | |||
|
e1382092d3 | ||
61b3239300 | |||
0fab195157 | |||
|
41951d0a43 |
6 changed files with 165 additions and 76 deletions
|
@ -2,11 +2,11 @@ stages:
|
|||
- build
|
||||
|
||||
variables:
|
||||
version: "v2.15.3_unofficial_45"
|
||||
version: "v2.15.3_unofficial_50"
|
||||
GRADLE_OPTS: -Dorg.gradle.daemon=false
|
||||
|
||||
build:
|
||||
image: gradle:7.2
|
||||
image: gradle:7.4
|
||||
stage: build
|
||||
script:
|
||||
- ./build.sh
|
||||
|
@ -18,11 +18,15 @@ build:
|
|||
- arm-unknown-linux-gnueabihf
|
||||
- armv7-unknown-linux-gnueabihf
|
||||
- x86_64-unknown-linux-gnu
|
||||
- x86_64-unknown-linux-musl
|
||||
|
||||
build x86_64-apple-darwin:
|
||||
build darwin:
|
||||
stage: build
|
||||
tags: [darwin-builder]
|
||||
script:
|
||||
- ./build.sh
|
||||
variables:
|
||||
TARGET: x86_64-apple-darwin
|
||||
parallel:
|
||||
matrix:
|
||||
- TARGET:
|
||||
- x86_64-apple-darwin
|
||||
- aarch64-apple-darwin
|
||||
|
|
1
build.sh
1
build.sh
|
@ -5,6 +5,7 @@ cd libsignal-service-java
|
|||
git config user.email nobody@signald.org
|
||||
git config user.name signald
|
||||
git am ../libsignal-service-java.patch
|
||||
git am ../update-kbs-settings.patch
|
||||
python3 ../update-verification-metadata.py
|
||||
git diff --color=always
|
||||
gradle assemble publish || (gradle --write-verification-metadata sha256 && git diff --color=always && exit 1)
|
||||
|
|
32
hashes.json
32
hashes.json
|
@ -1,26 +1,34 @@
|
|||
{
|
||||
"aarch64-unknown-linux-gnu": {
|
||||
"jar": "b0658de8e4b512fcae3962efeb1143ebab0f8e5fa1560f4f795443cbf73d8e0e",
|
||||
"module": "d9e8813cc82bc846674cfcb5d71867c756d6d61688c7cbdb391bc62662beceee"
|
||||
"jar": "802529c1472f7e621cca496c918d7bfec08314572f10e168b0d20b15a5b8101a",
|
||||
"module": "48e315037d2d9af6c7cf7b811d9a81d81b1eff13cbb1837b7638a3803b68f303"
|
||||
},
|
||||
"arm-unknown-linux-gnueabi": {
|
||||
"jar": "3a76b4c2708aad46b4b1f179d3e586fee966251161afbd24004ee7f1eba95238",
|
||||
"module": "8cfba809664dac88dc95abbb7debb42a3cd98765839fb7f2c2264108c2cc2fd8"
|
||||
"jar": "8ef66fe1ae28fe7b2918292824ef33a41a3432c3a981cfa55665106c89348327",
|
||||
"module": "7c988dfb2fca57ff0aabd7bd88ebfa5658be8722adb0831a5140aed3d1529097"
|
||||
},
|
||||
"arm-unknown-linux-gnueabihf": {
|
||||
"jar": "850834c2ec967d2026356361b3dbf0bdd30bd3bc683eb4b5547d7bd29d92a15c",
|
||||
"module": "f2d9ce5cdcb975077f0753d2ff1ff7bb2132cbd908e2fc07f56f64733414ae69"
|
||||
"jar": "446a796b0a2a062c65d9d5cb75a3fd4aadc03ab321b52c39a5bfe1e6f9dc9891",
|
||||
"module": "30e6a82cc6d2b01b57b758d8352c9d90926f31becfe6218c43d2614a309c9cbc"
|
||||
},
|
||||
"armv7-unknown-linux-gnueabihf": {
|
||||
"jar": "04e56a800ae0117e15f2363ec43650f2a1f1d44a98bf5f8fb90ead97aad139d8",
|
||||
"module": "fb3e883221de56d39494694f368280a9cc5e828e95b9b9d19d70142ab405cfb0"
|
||||
"jar": "3e896a52cf5816387094137403c112353de93f4b7591bcfc5965e89ef3777c5b",
|
||||
"module": "39be083718c6b8afe94e2ccff63c918ea1255292881afbb60b12236cd4b70dc6"
|
||||
},
|
||||
"x86_64-unknown-linux-gnu": {
|
||||
"jar": "dc16547f2fb4303bb9f0771c3a7bc70cf59a472e899d206c348b631298e3baa4",
|
||||
"module": "5b97d734a7248ebf493e2519867aeb3b0ec58b627c42798845bcf073cbe75305"
|
||||
"jar": "b38295eb11df91939b872f49eb8b55b2faf7933da92202b95d82320f4cdcb644",
|
||||
"module": "1b739335cde181864882481f5feca8fca3f7baa439f79c36ac596a781e6d4477"
|
||||
},
|
||||
"x86_64-apple-darwin": {
|
||||
"jar": "0b5892636edf693695bb7f81bf739f5d50cb1830a6d5b93948bc402874bd6c87",
|
||||
"module": "954fa3ffb650b5d90aa5710193d1c747224450a23ea72594c1be4aa0067693e2"
|
||||
"jar": "949a72b14d81389a30e330db3162f822a475d0f19087590f334639acdb01b4eb",
|
||||
"module": "7de5da969225585d36d68ba7a87c80d33886e36a04dea9d78ef8c2df9f6a3bf2"
|
||||
},
|
||||
"aarch64-apple-darwin": {
|
||||
"jar": "e7f405b1c521054bbea8ec0ff87c54527f17e8c914079d7805c4def3589e8af1",
|
||||
"module": "3c153a7e01ae317280981e387d3fd002b7106ce65653be1b6e4216a4f4d9d314"
|
||||
},
|
||||
"x86_64-unknown-linux-musl": {
|
||||
"jar": "9a46edb376089b6284cbc76c4e6bc21fa91f8ee7e3daf221d704243cfe0c16cf",
|
||||
"module": "a35abf78dc674557ddc7da348d5eb2d015b4e843d5402df95922ba2780b36169"
|
||||
}
|
||||
}
|
|
@ -1,41 +1,38 @@
|
|||
From f43d826dc39e172db303aab5c0db73d11a43a6d2 Mon Sep 17 00:00:00 2001
|
||||
From c51057ae26118490176af0b2421f8fa62d926c00 Mon Sep 17 00:00:00 2001
|
||||
From: signald <nobody@signald.org>
|
||||
Date: Mon, 21 Mar 2022 18:40:29 -0700
|
||||
Subject: [PATCH] update gradle files
|
||||
Date: Thu, 16 Jun 2022 13:04:00 -0700
|
||||
Subject: [PATCH] update build files and provide a way for the websocket
|
||||
receive callback to indicate the message was not saved
|
||||
|
||||
---
|
||||
build.gradle | 18 +++---------------
|
||||
dependencies.gradle | 3 +--
|
||||
gradle/verification-metadata.xml | 19 +++++++++++--------
|
||||
service/build.gradle | 21 ++++++++++-----------
|
||||
settings.gradle | 1 -
|
||||
5 files changed, 25 insertions(+), 37 deletions(-)
|
||||
build.gradle | 17 +++--------------
|
||||
dependencies.gradle | 3 +--
|
||||
gradle/verification-metadata.xml | 13 ++++++++-----
|
||||
service/build.gradle | 19 +++++++++----------
|
||||
.../signalservice/api/NotSavedException.java | 4 ++++
|
||||
.../signalservice/api/SignalWebSocket.java | 13 ++++++++++---
|
||||
settings.gradle | 1 -
|
||||
7 files changed, 35 insertions(+), 35 deletions(-)
|
||||
create mode 100644 service/src/main/java/org/whispersystems/signalservice/api/NotSavedException.java
|
||||
|
||||
diff --git a/build.gradle b/build.gradle
|
||||
index 7b6a436..6641bb0 100644
|
||||
index 2498bfcb..81f7038d 100644
|
||||
--- a/build.gradle
|
||||
+++ b/build.gradle
|
||||
@@ -1,5 +1,6 @@
|
||||
buildscript {
|
||||
repositories {
|
||||
+ maven {url "https://gitlab.com/api/v4/groups/6853927/-/packages/maven"} // https://gitlab.com/groups/signald/-/packages
|
||||
google()
|
||||
mavenCentral()
|
||||
}
|
||||
@@ -9,11 +10,7 @@ buildscript {
|
||||
@@ -9,11 +9,8 @@ buildscript {
|
||||
}
|
||||
}
|
||||
|
||||
-plugins {
|
||||
- id("io.github.gradle-nexus.publish-plugin") version "1.1.0"
|
||||
-}
|
||||
-
|
||||
|
||||
-project.group = "com.github.turasa"
|
||||
+project.group = "org.signald"
|
||||
|
||||
def getRepositoryUsername() {
|
||||
return hasProperty('whisperSonatypeUsername') ? whisperSonatypeUsername : ""
|
||||
@@ -23,18 +20,9 @@ def getRepositoryPassword() {
|
||||
@@ -23,18 +20,10 @@ def getRepositoryPassword() {
|
||||
return hasProperty('whisperSonatypePassword') ? whisperSonatypePassword : ""
|
||||
}
|
||||
|
||||
|
@ -47,30 +44,31 @@ index 7b6a436..6641bb0 100644
|
|||
- }
|
||||
- }
|
||||
-}
|
||||
-
|
||||
|
||||
subprojects {
|
||||
ext.lib_signal_service_version_number = "2.15.3_unofficial_45"
|
||||
- ext.lib_signal_service_version_number = "2.15.3_unofficial_50"
|
||||
- ext.lib_signal_service_group_info = "com.github.turasa"
|
||||
+ ext.lib_signal_service_version_number = "2.15.3_unofficial_50_signald_2"
|
||||
+ ext.lib_signal_service_group_info = "org.signald"
|
||||
|
||||
if (JavaVersion.current().isJava8Compatible()) {
|
||||
allprojects {
|
||||
diff --git a/dependencies.gradle b/dependencies.gradle
|
||||
index d468f38..1f0ba1b 100644
|
||||
index e4b9f8a8..20e0d2f2 100644
|
||||
--- a/dependencies.gradle
|
||||
+++ b/dependencies.gradle
|
||||
@@ -8,8 +8,7 @@ dependencyResolutionManagement {
|
||||
alias('google-libphonenumber').to('com.googlecode.libphonenumber:libphonenumber:8.12.33')
|
||||
alias('google-libphonenumber').to('com.googlecode.libphonenumber:libphonenumber:8.12.48')
|
||||
|
||||
// 1st Party
|
||||
- alias('signal-client-java').to('org.whispersystems', 'signal-client-java').versionRef('signal-client')
|
||||
- alias('signal-client-android').to('org.whispersystems', 'signal-client-android').versionRef('signal-client')
|
||||
+ alias('signal-client-java').to('org.signald', 'signal-client-java-' + System.getenv("TARGET")).versionRef('signal-client')
|
||||
- alias('libsignal-client').to('org.signal', 'libsignal-client').versionRef('libsignal-client')
|
||||
- alias('libsignal-android').to('org.signal', 'libsignal-android').versionRef('libsignal-client')
|
||||
+ alias('libsignal-client').to('org.signald', 'libsignal-client-' + System.getenv("TARGET")).versionRef('libsignal-client')
|
||||
|
||||
// Third Party
|
||||
alias('jackson-core').to('com.fasterxml.jackson.core:jackson-databind:2.13.0')
|
||||
diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml
|
||||
index 261b8e2..fb92055 100644
|
||||
index fc39d024..59fde59c 100644
|
||||
--- a/gradle/verification-metadata.xml
|
||||
+++ b/gradle/verification-metadata.xml
|
||||
@@ -482,6 +482,9 @@
|
||||
|
@ -83,38 +81,26 @@ index 261b8e2..fb92055 100644
|
|||
</component>
|
||||
<component group="com.google.testing.platform" name="core-proto" version="0.0.8-alpha04">
|
||||
<artifact name="core-proto-0.0.8-alpha04.jar">
|
||||
@@ -1130,6 +1133,14 @@
|
||||
<sha256 value="2c2a264f842498c36d34d2a7b91342490d9a962862c85baac1acd54ec2fca6d9" origin="Generated by Gradle"/>
|
||||
@@ -1133,12 +1136,12 @@
|
||||
<sha256 value="95510c70f1bf0fd65ddc1f39fbf7a42d75d8a064dc3a2cbe52496fa2f2c535f0" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
+ <component group="org.signald" name="signal-client-java-{TARGET}" version="0.14.0">
|
||||
+ <artifact name="signal-client-java-{TARGET}-0.14.0.jar">
|
||||
- <component group="org.signal" name="libsignal-client" version="0.17.0">
|
||||
- <artifact name="libsignal-client-0.17.0.jar">
|
||||
- <sha256 value="3611dc9425d7ef85daedbafa49fa67f49e921bf89e36f601d0b79b1268315619" origin="Generated by Gradle"/>
|
||||
+ <component group="org.signald" name="libsignal-client-{TARGET}" version="0.17.0">
|
||||
+ <artifact name="libsignal-client-{TARGET}-0.17.0.jar">
|
||||
+ <sha256 value="{TARGET_JAR_SHA256}" origin="Generated by Gradle"/>
|
||||
+ </artifact>
|
||||
+ <artifact name="signal-client-java-{TARGET}-0.14.0.module">
|
||||
</artifact>
|
||||
- <artifact name="libsignal-client-0.17.0.module">
|
||||
- <sha256 value="cc6125c6e30421eb39a115576371a41f0adde7ea501e99d2c74192264e6fb1ab" origin="Generated by Gradle"/>
|
||||
+ <artifact name="libsignal-client-{TARGET}-0.17.0.module">
|
||||
+ <sha256 value="{TARGET_MODULE_SHA256}" origin="Generated by Gradle"/>
|
||||
+ </artifact>
|
||||
+ </component>
|
||||
<component group="org.testng" name="testng" version="7.3.0">
|
||||
<artifact name="testng-7.3.0.jar">
|
||||
<sha256 value="63727488f9717d57f0d0a0fee5a1fc10a2be9cfcff2ec3a7187656d663c0774e" origin="Generated by Gradle"/>
|
||||
@@ -1148,14 +1159,6 @@
|
||||
<sha256 value="ebcdde2d03c677dbefd612819b8cf477cbb35872f1d59d4ab61bda3d56a9c87f" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
- <component group="org.whispersystems" name="signal-client-java" version="0.14.0">
|
||||
- <artifact name="signal-client-java-0.14.0.jar">
|
||||
- <sha256 value="c9e98d95d427caac518ad9ae0300502ae76cc228def2dd2ada0c23f52b8dfed6" origin="Generated by Gradle"/>
|
||||
- </artifact>
|
||||
- <artifact name="signal-client-java-0.14.0.module">
|
||||
- <sha256 value="9f0b7ab60329b9049c19f6f762a3e603df287662247a2317f7dea657ff749b2f" origin="Generated by Gradle"/>
|
||||
- </artifact>
|
||||
- </component>
|
||||
<component group="xerces" name="xercesImpl" version="2.12.0">
|
||||
<artifact name="xercesImpl-2.12.0.jar">
|
||||
<sha256 value="b50d3a4ca502faa4d1c838acb8aa9480446953421f7327e338c5dda3da5e76d0" origin="Generated by Gradle"/>
|
||||
<component group="org.tensorflow" name="tensorflow-lite-metadata" version="0.1.0-rc2">
|
||||
diff --git a/service/build.gradle b/service/build.gradle
|
||||
index db7d2eb..8e6d0d1 100644
|
||||
index ae4df43a..4b0240d8 100644
|
||||
--- a/service/build.gradle
|
||||
+++ b/service/build.gradle
|
||||
@@ -21,6 +21,7 @@ compileJava {
|
||||
|
@ -152,16 +138,66 @@ index db7d2eb..8e6d0d1 100644
|
|||
}
|
||||
}
|
||||
}
|
||||
-}
|
||||
}
|
||||
-
|
||||
-signing {
|
||||
- required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
|
||||
- sign publishing.publications.mavenJava
|
||||
-}
|
||||
diff --git a/service/src/main/java/org/whispersystems/signalservice/api/NotSavedException.java b/service/src/main/java/org/whispersystems/signalservice/api/NotSavedException.java
|
||||
new file mode 100644
|
||||
index 00000000..05d77d1f
|
||||
--- /dev/null
|
||||
+++ b/service/src/main/java/org/whispersystems/signalservice/api/NotSavedException.java
|
||||
@@ -0,0 +1,4 @@
|
||||
+package org.whispersystems.signalservice.api;
|
||||
+
|
||||
+public class NotSavedException extends Exception {
|
||||
+}
|
||||
\ No newline at end of file
|
||||
diff --git a/service/src/main/java/org/whispersystems/signalservice/api/SignalWebSocket.java b/service/src/main/java/org/whispersystems/signalservice/api/SignalWebSocket.java
|
||||
index 5a98f3c4..dff24940 100644
|
||||
--- a/service/src/main/java/org/whispersystems/signalservice/api/SignalWebSocket.java
|
||||
+++ b/service/src/main/java/org/whispersystems/signalservice/api/SignalWebSocket.java
|
||||
@@ -243,6 +243,7 @@ public final class SignalWebSocket {
|
||||
while (true) {
|
||||
WebSocketRequestMessage request = getWebSocket().readRequest(timeout);
|
||||
WebSocketResponseMessage response = createWebSocketResponse(request);
|
||||
+ boolean sendResponse = true; // indicates the acknowledgement should be sent to the server
|
||||
try {
|
||||
if (isSignalServiceEnvelope(request)) {
|
||||
Optional<String> timestampHeader = findHeader(request);
|
||||
@@ -258,13 +259,19 @@ public final class SignalWebSocket {
|
||||
|
||||
SignalServiceEnvelope envelope = new SignalServiceEnvelope(request.getBody().toByteArray(), timestamp);
|
||||
|
||||
- callback.onMessage(envelope);
|
||||
+ try {
|
||||
+ callback.onMessage(envelope);
|
||||
+ } catch (NotSavedException e) {
|
||||
+ sendResponse = false;
|
||||
+ }
|
||||
return Optional.of(envelope);
|
||||
} else if (isSocketEmptyRequest(request)) {
|
||||
return Optional.empty();
|
||||
}
|
||||
} finally {
|
||||
- getWebSocket().sendResponse(response);
|
||||
+ if(sendResponse) {
|
||||
+ getWebSocket().sendResponse(response);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -315,6 +322,6 @@ public final class SignalWebSocket {
|
||||
* received.
|
||||
*/
|
||||
public interface MessageReceivedCallback {
|
||||
- void onMessage(SignalServiceEnvelope envelope);
|
||||
+ void onMessage(SignalServiceEnvelope envelope) throws NotSavedException;
|
||||
}
|
||||
}
|
||||
diff --git a/settings.gradle b/settings.gradle
|
||||
index 8861c00..8dd0342 100644
|
||||
index 8861c008..8dd03423 100644
|
||||
--- a/settings.gradle
|
||||
+++ b/settings.gradle
|
||||
@@ -1,6 +1,5 @@
|
||||
|
|
|
@ -3,17 +3,19 @@ import requests
|
|||
import hashlib
|
||||
import json
|
||||
|
||||
VERSION = "0.14.0"
|
||||
VERSION = "0.17.0"
|
||||
TARGETS = [
|
||||
"aarch64-unknown-linux-gnu",
|
||||
"arm-unknown-linux-gnueabi",
|
||||
"arm-unknown-linux-gnueabihf",
|
||||
"armv7-unknown-linux-gnueabihf",
|
||||
"x86_64-unknown-linux-gnu",
|
||||
"x86_64-apple-darwin"
|
||||
"x86_64-apple-darwin",
|
||||
"x86_64-unknown-linux-musl",
|
||||
"aarch64-apple-darwin"
|
||||
]
|
||||
|
||||
urlFormat = "https://gitlab.com/api/v4/groups/6853927/-/packages/maven/org/signald/signal-client-java-{target}/{version}/signal-client-java-{target}-{version}.{ext}"
|
||||
urlFormat = "https://gitlab.com/api/v4/groups/6853927/-/packages/maven/org/signald/libsignal-client-{target}/{version}/libsignal-client-{target}-{version}.{ext}"
|
||||
output = {}
|
||||
|
||||
for target in TARGETS:
|
||||
|
|
38
update-kbs-settings.patch
Normal file
38
update-kbs-settings.patch
Normal file
|
@ -0,0 +1,38 @@
|
|||
From d432b9234521947d7bb07434f69a30b407700f5c Mon Sep 17 00:00:00 2001
|
||||
From: Greyson Parrelli <greyson@signal.org>
|
||||
Date: Thu, 20 Oct 2022 13:12:27 -0400
|
||||
Subject: [PATCH 2/2] [Signal-Android] Updated KBS settings.
|
||||
9941ffe79c2508eb9b1f1fa78b47b84c465d1199
|
||||
|
||||
---
|
||||
.../internal/contacts/crypto/RemoteAttestationCipher.java | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/service/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestationCipher.java b/service/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestationCipher.java
|
||||
index 05073edf..32e86c70 100644
|
||||
--- a/service/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestationCipher.java
|
||||
+++ b/service/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestationCipher.java
|
||||
@@ -24,6 +24,11 @@ import java.util.Set;
|
||||
|
||||
public final class RemoteAttestationCipher {
|
||||
|
||||
+ private static final Set<String> ALLOWED_ADVISORIES = new HashSet<String>() {{
|
||||
+ add("INTEL-SA-00334");
|
||||
+ add("INTEL-SA-00615");
|
||||
+ }};
|
||||
+
|
||||
private RemoteAttestationCipher() {
|
||||
}
|
||||
|
||||
@@ -100,7 +105,7 @@ public final class RemoteAttestationCipher {
|
||||
if ("OK".equals(entity.getIsvEnclaveQuoteStatus())) {
|
||||
return true;
|
||||
} else if ("SW_HARDENING_NEEDED".equals(entity.getIsvEnclaveQuoteStatus())) {
|
||||
- return entity.getAdvisoryIds().length == 1 && "INTEL-SA-00334".equals(entity.getAdvisoryIds()[0]);
|
||||
+ return Arrays.stream(entity.getAdvisoryIds()).allMatch(ALLOWED_ADVISORIES::contains);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
--
|
||||
2.30.2
|
||||
|
Loading…
Reference in a new issue