diff options
Diffstat (limited to 'src/main/java/de/pixart/messenger/utils/CryptoHelper.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/utils/CryptoHelper.java | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/utils/CryptoHelper.java b/src/main/java/de/pixart/messenger/utils/CryptoHelper.java index 8e70e7bb7..d34823d86 100644 --- a/src/main/java/de/pixart/messenger/utils/CryptoHelper.java +++ b/src/main/java/de/pixart/messenger/utils/CryptoHelper.java @@ -34,6 +34,10 @@ import de.pixart.messenger.http.AesGcmURLStreamHandler; import rocks.xmpp.addr.Jid; public final class CryptoHelper { + + private static final char[] VOWELS = "aeiou".toCharArray(); + private static final char[] CONSONANTS = "bcfghjklmnpqrstvwxyz".toCharArray(); + public static final String FILETRANSFER = "?FILETRANSFERv1:"; private final static char[] hexArray = "0123456789abcdef".toCharArray(); @@ -50,6 +54,16 @@ public final class CryptoHelper { return new String(hexChars); } + public static String pronounceable(SecureRandom random) { + char[] output = new char[random.nextInt(4) * 2 + 5]; + boolean vowel = random.nextBoolean(); + for (int i = 0; i < output.length; ++i) { + output[i] = vowel ? VOWELS[random.nextInt(VOWELS.length)] : CONSONANTS[random.nextInt(CONSONANTS.length)]; + vowel = !vowel; + } + return String.valueOf(output); + } + public static byte[] hexToBytes(String hexString) { int len = hexString.length(); byte[] array = new byte[len / 2]; |