From 54f25358ebb62d810fa296fee962908f5484f206 Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Wed, 3 May 2017 14:37:08 -0700 Subject: [PATCH] Apparently I'm behind the times on this constructor // FREEBIE --- .../auth/AuthenticationCredentials.java | 8 ++------ .../textsecuregcm/auth/TurnTokenGenerator.java | 2 +- .../controllers/AccountController.java | 16 ++++++---------- .../controllers/AttachmentController.java | 12 ++++-------- .../controllers/DeviceController.java | 10 +++------- .../federation/FederatedClient.java | 2 +- .../websocket/ProvisioningAddress.java | 4 ++-- .../textsecuregcm/workers/DeleteUserCommand.java | 2 +- .../dispatch/redis/PubSubConnectionTest.java | 16 ++++++---------- 9 files changed, 26 insertions(+), 46 deletions(-) diff --git a/src/main/java/org/whispersystems/textsecuregcm/auth/AuthenticationCredentials.java b/src/main/java/org/whispersystems/textsecuregcm/auth/AuthenticationCredentials.java index deeff8ec3..da772b607 100644 --- a/src/main/java/org/whispersystems/textsecuregcm/auth/AuthenticationCredentials.java +++ b/src/main/java/org/whispersystems/textsecuregcm/auth/AuthenticationCredentials.java @@ -38,12 +38,8 @@ public class AuthenticationCredentials { } public AuthenticationCredentials(String authenticationToken) { - try { - this.salt = Math.abs(SecureRandom.getInstance("SHA1PRNG").nextInt()) + ""; - this.hashedAuthenticationToken = getHashedValue(salt, authenticationToken); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } + this.salt = Math.abs(new SecureRandom().nextInt()) + ""; + this.hashedAuthenticationToken = getHashedValue(salt, authenticationToken); } public String getHashedAuthenticationToken() { diff --git a/src/main/java/org/whispersystems/textsecuregcm/auth/TurnTokenGenerator.java b/src/main/java/org/whispersystems/textsecuregcm/auth/TurnTokenGenerator.java index 216f84a91..a791f58c6 100644 --- a/src/main/java/org/whispersystems/textsecuregcm/auth/TurnTokenGenerator.java +++ b/src/main/java/org/whispersystems/textsecuregcm/auth/TurnTokenGenerator.java @@ -25,7 +25,7 @@ public class TurnTokenGenerator { try { Mac mac = Mac.getInstance("HmacSHA1"); long validUntilSeconds = (System.currentTimeMillis() + TimeUnit.DAYS.toMillis(1)) / 1000; - long user = Math.abs(SecureRandom.getInstance("SHA1PRNG").nextInt()); + long user = Math.abs(new SecureRandom().nextInt()); String userTime = validUntilSeconds + ":" + user; mac.init(new SecretKeySpec(key, "HmacSHA1")); diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java b/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java index 9d1bd5554..5bf09fea9 100644 --- a/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java +++ b/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java @@ -360,16 +360,12 @@ public class AccountController { } @VisibleForTesting protected VerificationCode generateVerificationCode(String number) { - try { - if (testDevices.containsKey(number)) { - return new VerificationCode(testDevices.get(number)); - } - - SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); - int randomInt = 100000 + random.nextInt(900000); - return new VerificationCode(randomInt); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); + if (testDevices.containsKey(number)) { + return new VerificationCode(testDevices.get(number)); } + + SecureRandom random = new SecureRandom(); + int randomInt = 100000 + random.nextInt(900000); + return new VerificationCode(randomInt); } } diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/AttachmentController.java b/src/main/java/org/whispersystems/textsecuregcm/controllers/AttachmentController.java index 628a050ef..82f380fd3 100644 --- a/src/main/java/org/whispersystems/textsecuregcm/controllers/AttachmentController.java +++ b/src/main/java/org/whispersystems/textsecuregcm/controllers/AttachmentController.java @@ -103,14 +103,10 @@ public class AttachmentController { } private long generateAttachmentId() { - try { - byte[] attachmentBytes = new byte[8]; - SecureRandom.getInstance("SHA1PRNG").nextBytes(attachmentBytes); + byte[] attachmentBytes = new byte[8]; + new SecureRandom().nextBytes(attachmentBytes); - attachmentBytes[0] = (byte)(attachmentBytes[0] & 0x7F); - return Conversions.byteArrayToLong(attachmentBytes); - } catch (NoSuchAlgorithmException nsae) { - throw new AssertionError(nsae); - } + attachmentBytes[0] = (byte)(attachmentBytes[0] & 0x7F); + return Conversions.byteArrayToLong(attachmentBytes); } } diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceController.java b/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceController.java index 7bf6bdb85..753047740 100644 --- a/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceController.java +++ b/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceController.java @@ -205,12 +205,8 @@ public class DeviceController { } @VisibleForTesting protected VerificationCode generateVerificationCode() { - try { - SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); - int randomInt = 100000 + random.nextInt(900000); - return new VerificationCode(randomInt); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } + SecureRandom random = new SecureRandom(); + int randomInt = 100000 + random.nextInt(900000); + return new VerificationCode(randomInt); } } diff --git a/src/main/java/org/whispersystems/textsecuregcm/federation/FederatedClient.java b/src/main/java/org/whispersystems/textsecuregcm/federation/FederatedClient.java index f759b69bb..b7bfeae59 100644 --- a/src/main/java/org/whispersystems/textsecuregcm/federation/FederatedClient.java +++ b/src/main/java/org/whispersystems/textsecuregcm/federation/FederatedClient.java @@ -222,7 +222,7 @@ public class FederatedClient { trustManagerFactory.init(initializeTrustStore(peer.getName(), peer.getCertificate())); SSLContext sslContext = SSLContext.getInstance("TLS"); - sslContext.init(null, trustManagerFactory.getTrustManagers(), SecureRandom.getInstance("SHA1PRNG")); + sslContext.init(null, trustManagerFactory.getTrustManagers(), new SecureRandom()); SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, new DefaultHostnameVerifier()); Registry registry = RegistryBuilder.create().register("https", sslConnectionSocketFactory).build(); diff --git a/src/main/java/org/whispersystems/textsecuregcm/websocket/ProvisioningAddress.java b/src/main/java/org/whispersystems/textsecuregcm/websocket/ProvisioningAddress.java index fcdcb30b2..500f5fcb1 100644 --- a/src/main/java/org/whispersystems/textsecuregcm/websocket/ProvisioningAddress.java +++ b/src/main/java/org/whispersystems/textsecuregcm/websocket/ProvisioningAddress.java @@ -22,11 +22,11 @@ public class ProvisioningAddress extends WebsocketAddress { public static ProvisioningAddress generate() { try { byte[] random = new byte[16]; - SecureRandom.getInstance("SHA1PRNG").nextBytes(random); + new SecureRandom().nextBytes(random); return new ProvisioningAddress(Base64.encodeBytesWithoutPadding(random) .replace('+', '-').replace('/', '_'), 0); - } catch (NoSuchAlgorithmException | InvalidWebsocketAddressException e) { + } catch (InvalidWebsocketAddressException e) { throw new AssertionError(e); } } diff --git a/src/main/java/org/whispersystems/textsecuregcm/workers/DeleteUserCommand.java b/src/main/java/org/whispersystems/textsecuregcm/workers/DeleteUserCommand.java index 0cc8bfbf0..c00f6a6fc 100644 --- a/src/main/java/org/whispersystems/textsecuregcm/workers/DeleteUserCommand.java +++ b/src/main/java/org/whispersystems/textsecuregcm/workers/DeleteUserCommand.java @@ -86,7 +86,7 @@ public class DeleteUserCommand extends EnvironmentCommand