From fe58361724a9f06dff9e4603877ba7e502803b79 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 30 Mar 2016 01:26:14 -0400 Subject: [PATCH] Some Java crypto providers don't allow IvParameterSpec objects for GCM ciphers, so use GCMParameterSpec instead --- .../src/com/limelight/nvstream/input/ControllerStream.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/moonlight-common/src/com/limelight/nvstream/input/ControllerStream.java b/moonlight-common/src/com/limelight/nvstream/input/ControllerStream.java index 88a19afa..62af62ca 100644 --- a/moonlight-common/src/com/limelight/nvstream/input/ControllerStream.java +++ b/moonlight-common/src/com/limelight/nvstream/input/ControllerStream.java @@ -19,6 +19,7 @@ import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.SecretKey; import javax.crypto.ShortBufferException; +import javax.crypto.spec.GCMParameterSpec; import javax.crypto.spec.IvParameterSpec; import com.limelight.nvstream.ConnectionContext; @@ -402,7 +403,7 @@ public class ControllerStream { Cipher cipher; try { cipher = Cipher.getInstance("AES/GCM/NoPadding"); - cipher.init(Cipher.ENCRYPT_MODE, key, new IvParameterSpec(iv)); + cipher.init(Cipher.ENCRYPT_MODE, key, new GCMParameterSpec(128, iv)); // This is also non-ideal. Java gives us but we want to send // so we'll take the output and arraycopy it into the right spot in the output buffer