]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/manager/Utils.java
Create codeql-analysis.yml
[signal-cli] / src / main / java / org / asamk / signal / manager / Utils.java
index 0b74f01d90b0d9060fd548224f7fcabd1638cf88..894bd58d9c7991faf0a49007f1a7bea676583c86 100644 (file)
@@ -1,6 +1,5 @@
 package org.asamk.signal.manager;
 
-import org.asamk.signal.AttachmentInvalidException;
 import org.signal.libsignal.metadata.certificate.CertificateValidator;
 import org.whispersystems.libsignal.IdentityKey;
 import org.whispersystems.libsignal.InvalidKeyException;
@@ -15,6 +14,7 @@ import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;
 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
 import org.whispersystems.signalservice.api.util.StreamDetails;
 import org.whispersystems.signalservice.api.util.UuidUtil;
+import org.whispersystems.signalservice.internal.push.http.ResumableUploadSpec;
 import org.whispersystems.util.Base64;
 
 import java.io.BufferedInputStream;
@@ -76,10 +76,12 @@ class Utils {
         final long attachmentSize = attachmentFile.length();
         final String mime = getFileMimeType(attachmentFile);
         // TODO mabybe add a parameter to set the voiceNote, preview, width, height and caption option
+        final long uploadTimestamp = System.currentTimeMillis();
         Optional<byte[]> preview = Optional.absent();
         Optional<String> caption = Optional.absent();
         Optional<String> blurHash = Optional.absent();
-        return new SignalServiceAttachmentStream(attachmentStream, mime, attachmentSize, Optional.of(attachmentFile.getName()), false, preview, 0, 0, caption, blurHash, null, null);
+        final Optional<ResumableUploadSpec> resumableUploadSpec = Optional.absent();
+        return new SignalServiceAttachmentStream(attachmentStream, mime, attachmentSize, Optional.of(attachmentFile.getName()), false, preview, 0, 0, uploadTimestamp, caption, blurHash, null, null, resumableUploadSpec);
     }
 
     static StreamDetails createStreamDetailsFromFile(File file) throws IOException {
@@ -94,7 +96,7 @@ class Utils {
 
     static CertificateValidator getCertificateValidator() {
         try {
-            ECPublicKey unidentifiedSenderTrustRoot = Curve.decodePoint(Base64.decode(BaseConfig.UNIDENTIFIED_SENDER_TRUST_ROOT), 0);
+            ECPublicKey unidentifiedSenderTrustRoot = Curve.decodePoint(Base64.decode(ServiceConfig.UNIDENTIFIED_SENDER_TRUST_ROOT), 0);
             return new CertificateValidator(unidentifiedSenderTrustRoot);
         } catch (InvalidKeyException | IOException e) {
             throw new AssertionError(e);
@@ -243,7 +245,7 @@ class Utils {
         byte[] ownId;
         byte[] theirId;
 
-        if (BaseConfig.capabilities.isUuid()
+        if (ServiceConfig.capabilities.isUuid()
                 && ownAddress.getUuid().isPresent() && theirAddress.getUuid().isPresent()) {
             // Version 2: UUID user
             version = 2;
@@ -252,6 +254,9 @@ class Utils {
         } else {
             // Version 1: E164 user
             version = 1;
+            if (!ownAddress.getNumber().isPresent() || !theirAddress.getNumber().isPresent()) {
+                return "INVALID ID";
+            }
             ownId = ownAddress.getNumber().get().getBytes();
             theirId = theirAddress.getNumber().get().getBytes();
         }