]> nmode's Git Repositories - signal-cli/commitdiff
Move IdentityKeyPair generation to KeyUtils
authorAsamK <asamk@gmx.de>
Mon, 21 Dec 2020 09:25:36 +0000 (10:25 +0100)
committerAsamK <asamk@gmx.de>
Mon, 4 Jan 2021 17:04:10 +0000 (18:04 +0100)
in preparation for rust libsignal which doesn't provide the method

src/main/java/org/asamk/signal/manager/Manager.java
src/main/java/org/asamk/signal/manager/ProvisioningManager.java
src/main/java/org/asamk/signal/manager/util/KeyUtils.java

index 9a6afe700b9480093fe74d5bce11fb3e77c05d75..666c085ee40e541ddf7a9e27a218f64565b187e7 100644 (file)
@@ -317,7 +317,7 @@ public class Manager implements Closeable {
         PathConfig pathConfig = PathConfig.createDefault(settingsPath);
 
         if (!SignalAccount.userExists(pathConfig.getDataPath(), username)) {
-            IdentityKeyPair identityKey = KeyHelper.generateIdentityKeyPair();
+            IdentityKeyPair identityKey = KeyUtils.generateIdentityKeyPair();
             int registrationId = KeyHelper.generateRegistrationId(false);
 
             ProfileKey profileKey = KeyUtils.createProfileKey();
index 8b3f0eb47c48c9550fca6e02c3baa6795aec7ad8..4195e8af8f4d05428c623e732937da2d04ea2186 100644 (file)
@@ -52,7 +52,7 @@ public class ProvisioningManager {
         this.serviceConfiguration = serviceConfiguration;
         this.userAgent = userAgent;
 
-        identityKey = KeyHelper.generateIdentityKeyPair();
+        identityKey = KeyUtils.generateIdentityKeyPair();
         registrationId = KeyHelper.generateRegistrationId(false);
         password = KeyUtils.createPassword();
         final SleepTimer timer = new UptimeSleepTimer();
index 3f9ec08fd55d92f91d7a99a4dc37605d917cf8c1..d8861b1be7cd164b4ee6bcf5baa5c78e0ddfad7a 100644 (file)
@@ -3,6 +3,11 @@ package org.asamk.signal.manager.util;
 import org.asamk.signal.util.RandomUtils;
 import org.signal.zkgroup.InvalidInputException;
 import org.signal.zkgroup.profiles.ProfileKey;
+import org.whispersystems.libsignal.IdentityKey;
+import org.whispersystems.libsignal.IdentityKeyPair;
+import org.whispersystems.libsignal.ecc.Curve;
+import org.whispersystems.libsignal.ecc.ECKeyPair;
+import org.whispersystems.libsignal.ecc.ECPrivateKey;
 import org.whispersystems.signalservice.api.kbs.MasterKey;
 import org.whispersystems.util.Base64;
 
@@ -11,6 +16,14 @@ public class KeyUtils {
     private KeyUtils() {
     }
 
+    public static IdentityKeyPair generateIdentityKeyPair() {
+        ECKeyPair djbKeyPair = Curve.generateKeyPair();
+        IdentityKey djbIdentityKey = new IdentityKey(djbKeyPair.getPublicKey());
+        ECPrivateKey djbPrivateKey = djbKeyPair.getPrivateKey();
+
+        return new IdentityKeyPair(djbIdentityKey, djbPrivateKey);
+    }
+
     public static String createSignalingKey() {
         return getSecret(52);
     }