Compare commits

...

15 commits

Author SHA1 Message Date
7bfa3bc807 add kbs settings patch file 2022-12-20 12:45:54 -08:00
finn
215952a8dd add aarch64-apple-darwin target 2022-09-13 15:58:03 -07:00
finn
75a6299076 update inexplicably different darwin hash 2022-08-22 15:50:44 -07:00
finn
ebf97bd571 fix checkout version 2022-08-22 15:50:44 -07:00
finn
abfe60edbe modify websocket receive callback to allow indicating the message was not saved and should be re-delivered 2022-08-22 15:50:44 -07:00
d6cde14350 add musl hashes 2022-07-31 13:07:24 -07:00
5173711b10 fix hashes 2022-07-31 13:05:31 -07:00
186d7ec602 add x86_64-unknown-linux-musl target 2022-07-31 12:55:47 -07:00
finn
e1382092d3 update to unofficial_50 2022-06-16 15:53:26 -07:00
61b3239300 fix patch 2022-04-26 17:28:29 -07:00
0fab195157 update to unofficial_47 2022-04-26 17:25:45 -07:00
finn
41951d0a43 update to unofficial_46 2022-04-06 13:39:50 -07:00
finn
19f6df8197 add verification metadata for osx 2022-03-21 19:06:14 -07:00
finn
5330f94872 fix variable name in template 2022-03-21 18:59:33 -07:00
finn
fec6f65b2b Update to unofficial_45 2022-03-21 18:58:14 -07:00
6 changed files with 176 additions and 83 deletions

View file

@ -2,11 +2,11 @@ stages:
- build
variables:
version: "v2.15.3_unofficial_38"
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

View file

@ -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)

View file

@ -1,26 +1,34 @@
{
"aarch64-unknown-linux-gnu": {
"jar": "842116b54ce7a64e7d1a2f5b95e089c274ab35fee45f0e108864b9a6bb47b5db",
"module": "30bb4de626a589810b6f01aede8be1d3df1d3adb01d674fc1ba75ee93ed0fa69"
"jar": "802529c1472f7e621cca496c918d7bfec08314572f10e168b0d20b15a5b8101a",
"module": "48e315037d2d9af6c7cf7b811d9a81d81b1eff13cbb1837b7638a3803b68f303"
},
"arm-unknown-linux-gnueabi": {
"jar": "5178c42d4347d727da39f34659c8b964befb9d82225ea069d91517397b638ace",
"module": "b60d58873960d1bede4704ca6c07801cc1ca95543cc04da683aa228d6c35dbdc"
"jar": "8ef66fe1ae28fe7b2918292824ef33a41a3432c3a981cfa55665106c89348327",
"module": "7c988dfb2fca57ff0aabd7bd88ebfa5658be8722adb0831a5140aed3d1529097"
},
"arm-unknown-linux-gnueabihf": {
"jar": "b5f8779a593c0fe37169a884eccbc0a70b8c55c0e389a0bace5e466e379af367",
"module": "dbda76abc260ad88d9cc4986f37f0327ed79fb1a12d0b9f397793ad2004f4e65"
"jar": "446a796b0a2a062c65d9d5cb75a3fd4aadc03ab321b52c39a5bfe1e6f9dc9891",
"module": "30e6a82cc6d2b01b57b758d8352c9d90926f31becfe6218c43d2614a309c9cbc"
},
"armv7-unknown-linux-gnueabihf": {
"jar": "b60df2af653e37cdb858fa844c49b81d568be9d158e6bcf9a99584f2a9fd9463",
"module": "135d0a143b581407a4f04d50460f497a7302d46aa9bc532fa9a1d039e60007d2"
"jar": "3e896a52cf5816387094137403c112353de93f4b7591bcfc5965e89ef3777c5b",
"module": "39be083718c6b8afe94e2ccff63c918ea1255292881afbb60b12236cd4b70dc6"
},
"x86_64-unknown-linux-gnu": {
"jar": "b7ac682938e12f3b2b9f88a5ad7bd843d86abc4368742e404bc8d1b9e4fc6de5",
"module": "224b6332067e77650065e6dbd4f6b2d8eed1f4830bcf0e4ab31d3c4483352f0c"
"jar": "b38295eb11df91939b872f49eb8b55b2faf7933da92202b95d82320f4cdcb644",
"module": "1b739335cde181864882481f5feca8fca3f7baa439f79c36ac596a781e6d4477"
},
"x86_64-apple-darwin": {
"jar": "7d22516d32ab6be5648d4b2d728daafa755ac188f0880a99c956265e175e7840",
"module": "efa44dab7df24db4d60030ed613c17bff9f439bc7797124db8cdc18b177acc8f"
"jar": "949a72b14d81389a30e330db3162f822a475d0f19087590f334639acdb01b4eb",
"module": "7de5da969225585d36d68ba7a87c80d33886e36a04dea9d78ef8c2df9f6a3bf2"
},
"aarch64-apple-darwin": {
"jar": "e7f405b1c521054bbea8ec0ff87c54527f17e8c914079d7805c4def3589e8af1",
"module": "3c153a7e01ae317280981e387d3fd002b7106ce65653be1b6e4216a4f4d9d314"
},
"x86_64-unknown-linux-musl": {
"jar": "9a46edb376089b6284cbc76c4e6bc21fa91f8ee7e3daf221d704243cfe0c16cf",
"module": "a35abf78dc674557ddc7da348d5eb2d015b4e843d5402df95922ba2780b36169"
}
}

View file

@ -1,41 +1,38 @@
From 15483c7c0a29067bad3752cdaa12634beb351995 Mon Sep 17 00:00:00 2001
From c51057ae26118490176af0b2421f8fa62d926c00 Mon Sep 17 00:00:00 2001
From: signald <nobody@signald.org>
Date: Sat, 15 Jan 2022 17:34:03 -0800
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 | 12 +++++++++---
service/build.gradle | 24 +++++++++++-------------
settings.gradle | 1 -
5 files changed, 24 insertions(+), 34 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 818516d..2083332 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,60 +44,63 @@ index 818516d..2083332 100644
- }
- }
-}
-
subprojects {
ext.lib_signal_service_version_number = "2.15.3_unofficial_38"
- 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 c3a0278..b28c32d 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.whispersystems', '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 447b720..5fa2f62 100644
index fc39d024..59fde59c 100644
--- a/gradle/verification-metadata.xml
+++ b/gradle/verification-metadata.xml
@@ -477,6 +477,9 @@
<artifact name="protoc-3.10.0-linux-x86_64.exe">
<sha256 value="eed3ea189a99e3ad4e4209332e7161b255dc8f39bbde4c8e9fc25535f0f6f4f5" origin="Generated by Gradle"/>
@@ -482,6 +482,9 @@
<artifact name="protoc-3.18.0-linux-x86_64.exe">
<sha256 value="e977a0b300a3b0c7c0135a02b8a4d746081e1cd8946ea747e0247412535692fe" origin="Generated by Gradle"/>
</artifact>
+ <artifact name="protoc-3.10.0-osx-x86_64.exe">
+ <sha256 value="a73d5bc8a2a4ab2a541901aa5ce81beacf8a7be5635be06a99c88f5ec10e840f" origin="Generated by Gradle"/>
+ <artifact name="protoc-3.18.0-osx-x86_64.exe">
+ <sha256 value="956241e25cac149cf8d01d4f9125f2913b3bc471deea6856231367cdf4be71a4" origin="Generated by Gradle"/>
+ </artifact>
</component>
<component group="com.google.testing.platform" name="core-proto" version="0.0.8-alpha04">
<artifact name="core-proto-0.0.8-alpha04.jar">
@@ -1140,9 +1143,12 @@
<sha256 value="970c62e785f9364860a6cba69e481d2d4b830827e616eec470b5dd29410753f1" origin="Generated by Gradle"/>
@@ -1133,12 +1136,12 @@
<sha256 value="95510c70f1bf0fd65ddc1f39fbf7a42d75d8a064dc3a2cbe52496fa2f2c535f0" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.whispersystems" name="signal-client-java" version="0.11.0">
- <artifact name="signal-client-java-0.11.0.jar">
- <sha256 value="7bd19ccfbfc9c0f98c80aafc44bedc18706ab2e142e257e91f592bf9cbbd070a" origin="Generated by Gradle"/>
+ <component group="org.whispersystems" name="signal-client-java-{TARGET}" version="0.11.0">
+ <artifact name="signal-client-java-{TARGET}-0.11.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.11.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="xerces" name="xercesImpl" version="2.12.0">
<component group="org.tensorflow" name="tensorflow-lite-metadata" version="0.1.0-rc2">
diff --git a/service/build.gradle b/service/build.gradle
index 076cf4b..817cbf1 100644
index ae4df43a..4b0240d8 100644
--- a/service/build.gradle
+++ b/service/build.gradle
@@ -21,6 +21,7 @@ compileJava {
@ -111,26 +111,16 @@ index 076cf4b..817cbf1 100644
mavenCentral()
mavenLocal()
}
@@ -74,7 +75,6 @@ protobuf {
idea {
module {
generatedSourceDirs += file("${protobuf.generatedFilesBaseDir}/main/java")
- scopes.COMPILE.plus += [configurations.ideaTestFixturesImplementation]
}
}
@@ -97,8 +97,8 @@ def getRepositoryPassword() {
@@ -98,7 +99,7 @@ def getRepositoryPassword() {
publishing {
publications {
- mavenJava(MavenPublication) {
mavenJava(MavenPublication) {
- artifactId = 'signal-service-java'
+ library(MavenPublication) {
+ artifactId = 'signal-service-java-' + System.getenv("TARGET")
from components.java
pom {
@@ -139,16 +139,14 @@ publishing {
@@ -139,16 +140,14 @@ publishing {
repositories {
maven {
@ -142,22 +132,72 @@ index 076cf4b..817cbf1 100644
+ credentials(HttpHeaderCredentials) {
+ name = 'Job-Token'
+ value = System.getenv("CI_JOB_TOKEN")
}
+ }
+ authentication {
+ header(HttpHeaderAuthentication)
+ }
+ header(HttpHeaderAuthentication)
}
}
}
-}
}
-
-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 @@

View file

@ -3,17 +3,19 @@ import requests
import hashlib
import json
VERSION = "0.11.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/whispersystems/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
View 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