diff --git a/libs/bcpkix-jdk15on-150.jar b/libs/bcpkix-jdk15on-151.jar similarity index 62% rename from libs/bcpkix-jdk15on-150.jar rename to libs/bcpkix-jdk15on-151.jar index 5dc125fc..57e00806 100644 Binary files a/libs/bcpkix-jdk15on-150.jar and b/libs/bcpkix-jdk15on-151.jar differ diff --git a/libs/bcprov-jdk15on-150.jar b/libs/bcprov-jdk15on-151.jar similarity index 59% rename from libs/bcprov-jdk15on-150.jar rename to libs/bcprov-jdk15on-151.jar index d4b510d7..4076e116 100644 Binary files a/libs/bcprov-jdk15on-150.jar and b/libs/bcprov-jdk15on-151.jar differ diff --git a/src/com/limelight/binding/crypto/AndroidCryptoProvider.java b/src/com/limelight/binding/crypto/AndroidCryptoProvider.java index 242749f3..01d62db6 100644 --- a/src/com/limelight/binding/crypto/AndroidCryptoProvider.java +++ b/src/com/limelight/binding/crypto/AndroidCryptoProvider.java @@ -23,15 +23,16 @@ import java.security.spec.InvalidKeySpecException; import java.security.spec.PKCS8EncodedKeySpec; import java.util.Calendar; import java.util.Date; +import java.util.Locale; import org.bouncycastle.asn1.x500.X500Name; import org.bouncycastle.asn1.x500.X500NameBuilder; import org.bouncycastle.asn1.x500.style.BCStyle; +import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo; import org.bouncycastle.cert.X509v3CertificateBuilder; import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter; -import org.bouncycastle.cert.jcajce.JcaX509v3CertificateBuilder; import org.bouncycastle.jce.provider.BouncyCastleProvider; -import org.bouncycastle.openssl.PEMWriter; +import org.bouncycastle.openssl.jcajce.JcaPEMWriter; import org.bouncycastle.operator.ContentSigner; import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder; @@ -152,7 +153,8 @@ public class AndroidCryptoProvider implements LimelightCryptoProvider { nameBuilder.addRDN(BCStyle.CN, "NVIDIA GameStream Client"); X500Name name = nameBuilder.build(); - X509v3CertificateBuilder certBuilder = new JcaX509v3CertificateBuilder(name, serial, now, expirationDate, name, keyPair.getPublic()); + X509v3CertificateBuilder certBuilder = new X509v3CertificateBuilder(name, serial, now, expirationDate, Locale.ENGLISH, name, + SubjectPublicKeyInfo.getInstance(keyPair.getPublic().getEncoded())); try { ContentSigner sigGen = new JcaContentSignerBuilder("SHA1withRSA").setProvider(BouncyCastleProvider.PROVIDER_NAME).build(keyPair.getPrivate()); @@ -179,7 +181,7 @@ public class AndroidCryptoProvider implements LimelightCryptoProvider { // Write the certificate in OpenSSL PEM format (important for the server) StringWriter strWriter = new StringWriter(); - PEMWriter pemWriter = new PEMWriter(strWriter); + JcaPEMWriter pemWriter = new JcaPEMWriter(strWriter); pemWriter.writeObject(cert); pemWriter.close(); diff --git a/src/com/limelight/binding/input/evdev/EvdevReader.java b/src/com/limelight/binding/input/evdev/EvdevReader.java index c55212de..b26e7328 100644 --- a/src/com/limelight/binding/input/evdev/EvdevReader.java +++ b/src/com/limelight/binding/input/evdev/EvdevReader.java @@ -3,6 +3,7 @@ package com.limelight.binding.input.evdev; import java.io.IOException; import java.io.OutputStream; import java.nio.ByteBuffer; +import java.util.Locale; import com.limelight.LimeLog; @@ -20,7 +21,7 @@ public class EvdevReader { OutputStream stdin = p.getOutputStream(); for (String file : files) { - stdin.write(String.format("chmod %o %s\n", octalPermissions, file).getBytes("UTF-8")); + stdin.write(String.format((Locale)null, "chmod %o %s\n", octalPermissions, file).getBytes("UTF-8")); } stdin.write("exit\n".getBytes("UTF-8")); stdin.flush(); diff --git a/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java b/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java index 2a96821c..20a4991f 100644 --- a/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java +++ b/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java @@ -3,6 +3,7 @@ package com.limelight.binding.video; import java.nio.ByteBuffer; import java.util.LinkedList; import java.util.List; +import java.util.Locale; import java.util.concurrent.locks.LockSupport; import org.jcodec.codecs.h264.io.model.SeqParameterSet; @@ -575,7 +576,7 @@ public class MediaCodecDecoderRenderer implements VideoDecoderRenderer { str += "Current buffer: "; currentBuffer.flip(); while (currentBuffer.hasRemaining() && currentBuffer.position() < 10) { - str += String.format("%02x ", currentBuffer.get()); + str += String.format((Locale)null, "%02x ", currentBuffer.get()); } str += "\n"; str += "Buffer codec flags: "+currentCodecFlags+"\n"; diff --git a/src/com/limelight/computers/ComputerDatabaseManager.java b/src/com/limelight/computers/ComputerDatabaseManager.java index e83649db..78630166 100644 --- a/src/com/limelight/computers/ComputerDatabaseManager.java +++ b/src/com/limelight/computers/ComputerDatabaseManager.java @@ -4,6 +4,7 @@ import java.net.InetAddress; import java.net.UnknownHostException; import java.util.LinkedList; import java.util.List; +import java.util.Locale; import java.util.UUID; import com.limelight.LimeLog; @@ -44,7 +45,7 @@ public class ComputerDatabaseManager { private void initializeDb() { // Create tables if they aren't already there - computerDb.execSQL(String.format("CREATE TABLE IF NOT EXISTS %s(%s TEXT PRIMARY KEY," + + computerDb.execSQL(String.format((Locale)null, "CREATE TABLE IF NOT EXISTS %s(%s TEXT PRIMARY KEY," + " %s TEXT NOT NULL, %s TEXT NOT NULL, %s TEXT NOT NULL, %s TEXT NOT NULL)", COMPUTER_TABLE_NAME, COMPUTER_NAME_COLUMN_NAME, COMPUTER_UUID_COLUMN_NAME, LOCAL_IP_COLUMN_NAME, diff --git a/src/com/limelight/computers/IdentityManager.java b/src/com/limelight/computers/IdentityManager.java index db463852..ab33ee35 100644 --- a/src/com/limelight/computers/IdentityManager.java +++ b/src/com/limelight/computers/IdentityManager.java @@ -4,6 +4,7 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; +import java.util.Locale; import java.util.Random; import com.limelight.LimeLog; @@ -61,7 +62,7 @@ public class IdentityManager { private static String generateNewUniqueId(Context c) { // Generate a new UID hex string LimeLog.info("Generating new UID"); - String uidStr = String.format("%016x", new Random().nextLong()); + String uidStr = String.format((Locale)null, "%016x", new Random().nextLong()); OutputStreamWriter writer = null; try {