mirror of
https://github.com/AsamK/signal-cli
synced 2025-08-29 10:30:38 +00:00
51 lines
1.2 KiB
Java
51 lines
1.2 KiB
Java
package org.asamk.signal.manager;
|
|
|
|
import org.asamk.signal.util.RandomUtils;
|
|
import org.signal.zkgroup.InvalidInputException;
|
|
import org.signal.zkgroup.profiles.ProfileKey;
|
|
import org.whispersystems.util.Base64;
|
|
|
|
class KeyUtils {
|
|
|
|
private KeyUtils() {
|
|
}
|
|
|
|
static String createSignalingKey() {
|
|
return getSecret(52);
|
|
}
|
|
|
|
static ProfileKey createProfileKey() {
|
|
try {
|
|
return new ProfileKey(getSecretBytes(32));
|
|
} catch (InvalidInputException e) {
|
|
throw new AssertionError("Profile key is guaranteed to be 32 bytes here");
|
|
}
|
|
}
|
|
|
|
static String createPassword() {
|
|
return getSecret(18);
|
|
}
|
|
|
|
static byte[] createGroupId() {
|
|
return getSecretBytes(16);
|
|
}
|
|
|
|
static byte[] createUnrestrictedUnidentifiedAccess() {
|
|
return getSecretBytes(16);
|
|
}
|
|
|
|
static byte[] createStickerUploadKey() {
|
|
return getSecretBytes(64);
|
|
}
|
|
|
|
private static String getSecret(int size) {
|
|
byte[] secret = getSecretBytes(size);
|
|
return Base64.encodeBytes(secret);
|
|
}
|
|
|
|
private static byte[] getSecretBytes(int size) {
|
|
byte[] secret = new byte[size];
|
|
RandomUtils.getSecureRandom().nextBytes(secret);
|
|
return secret;
|
|
}
|
|
}
|