]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/manager/KeyUtils.java
Extract SignalAccount from Manager
[signal-cli] / src / main / java / org / asamk / signal / manager / KeyUtils.java
1 package org.asamk.signal.manager;
2
3 import org.whispersystems.signalservice.internal.util.Base64;
4
5 import java.security.NoSuchAlgorithmException;
6 import java.security.SecureRandom;
7
8 class KeyUtils {
9
10 private KeyUtils() {
11 }
12
13 static String createSignalingKey() {
14 return getSecret(52);
15 }
16
17 static byte[] createProfileKey() {
18 return getSecretBytes(32);
19 }
20
21 static String createPassword() {
22 return getSecret(18);
23 }
24
25 static byte[] createGroupId() {
26 return getSecretBytes(16);
27 }
28
29 private static String getSecret(int size) {
30 byte[] secret = getSecretBytes(size);
31 return Base64.encodeBytes(secret);
32 }
33
34 private static byte[] getSecretBytes(int size) {
35 byte[] secret = new byte[size];
36 getSecureRandom().nextBytes(secret);
37 return secret;
38 }
39
40 private static SecureRandom getSecureRandom() {
41 try {
42 return SecureRandom.getInstance("SHA1PRNG");
43 } catch (NoSuchAlgorithmException e) {
44 throw new AssertionError(e);
45 }
46 }
47 }