From 484be9bfe62077d53c0d2e7b333bd5530b7939c6 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Tue, 7 Jul 2020 00:52:11 -0500 Subject: [PATCH] Wrap and propagate unexpected exceptions --- .../binding/crypto/AndroidCryptoProvider.java | 12 ++----- .../com/limelight/nvstream/NvConnection.java | 33 ++++++++++--------- .../nvstream/http/PairingManager.java | 6 ++-- 3 files changed, 22 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/com/limelight/binding/crypto/AndroidCryptoProvider.java b/app/src/main/java/com/limelight/binding/crypto/AndroidCryptoProvider.java index 242fd90c..35af2d87 100644 --- a/app/src/main/java/com/limelight/binding/crypto/AndroidCryptoProvider.java +++ b/app/src/main/java/com/limelight/binding/crypto/AndroidCryptoProvider.java @@ -102,9 +102,7 @@ public class AndroidCryptoProvider implements LimelightCryptoProvider { LimeLog.warning("Corrupted certificate"); return false; } catch (NoSuchAlgorithmException e) { - // Should never happen - e.printStackTrace(); - return false; + throw new RuntimeException(e); } catch (InvalidKeySpecException e) { // May happen if the key is corrupt LimeLog.warning("Corrupted key"); @@ -124,10 +122,8 @@ public class AndroidCryptoProvider implements LimelightCryptoProvider { KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA", bcProvider); keyPairGenerator.initialize(2048); keyPair = keyPairGenerator.generateKeyPair(); - } catch (NoSuchAlgorithmException e1) { - // Should never happen - e1.printStackTrace(); - return false; + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException(e); } Date now = new Date(); @@ -152,8 +148,6 @@ public class AndroidCryptoProvider implements LimelightCryptoProvider { cert = new JcaX509CertificateConverter().setProvider(bcProvider).getCertificate(certBuilder.build(sigGen)); key = (RSAPrivateKey) keyPair.getPrivate(); } catch (Exception e) { - // Nothing should go wrong here - e.printStackTrace(); throw new RuntimeException(e); } diff --git a/app/src/main/java/com/limelight/nvstream/NvConnection.java b/app/src/main/java/com/limelight/nvstream/NvConnection.java index b1e61dac..d52ee271 100644 --- a/app/src/main/java/com/limelight/nvstream/NvConnection.java +++ b/app/src/main/java/com/limelight/nvstream/NvConnection.java @@ -43,25 +43,26 @@ public class NvConnection { this.context = new ConnectionContext(); this.context.streamConfig = config; this.context.serverCert = serverCert; - try { - // This is unique per connection - this.context.riKey = generateRiAesKey(); - } catch (NoSuchAlgorithmException e) { - // Should never happen - e.printStackTrace(); - } - - this.context.riKeyId = generateRiKeyId(); + + // This is unique per connection + this.context.riKey = generateRiAesKey(); + context.riKeyId = generateRiKeyId(); + this.isMonkey = ActivityManager.isUserAMonkey(); } - private static SecretKey generateRiAesKey() throws NoSuchAlgorithmException { - KeyGenerator keyGen = KeyGenerator.getInstance("AES"); - - // RI keys are 128 bits - keyGen.init(128); - - return keyGen.generateKey(); + private static SecretKey generateRiAesKey() { + try { + KeyGenerator keyGen = KeyGenerator.getInstance("AES"); + + // RI keys are 128 bits + keyGen.init(128); + + return keyGen.generateKey(); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + throw new RuntimeException(e); + } } private static int generateRiKeyId() { diff --git a/app/src/main/java/com/limelight/nvstream/http/PairingManager.java b/app/src/main/java/com/limelight/nvstream/http/PairingManager.java index d1802213..41840b6a 100644 --- a/app/src/main/java/com/limelight/nvstream/http/PairingManager.java +++ b/app/src/main/java/com/limelight/nvstream/http/PairingManager.java @@ -314,9 +314,8 @@ public class PairingManager { return md.digest(data); } catch (NoSuchAlgorithmException e) { - // Shouldn't ever happen e.printStackTrace(); - return null; + throw new RuntimeException(e); } } } @@ -332,9 +331,8 @@ public class PairingManager { return md.digest(data); } catch (NoSuchAlgorithmException e) { - // Shouldn't ever happen e.printStackTrace(); - return null; + throw new RuntimeException(e); } } }