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 5dc125f..57e0080 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 d4b510d..4076e11 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/PcCryptoProvider.java b/src/com/limelight/binding/crypto/PcCryptoProvider.java index d94120d..0225a8b 100644 --- a/src/com/limelight/binding/crypto/PcCryptoProvider.java +++ b/src/com/limelight/binding/crypto/PcCryptoProvider.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.X500NameBuilder; import org.bouncycastle.asn1.x500.X500Name; 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; import org.bouncycastle.util.encoders.Base64; @@ -141,8 +142,9 @@ public class PcCryptoProvider 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()); cert = new JcaX509CertificateConverter().setProvider(BouncyCastleProvider.PROVIDER_NAME).getCertificate(certBuilder.build(sigGen)); @@ -168,7 +170,7 @@ public class PcCryptoProvider 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();