mirror of
https://github.com/moonlight-stream/moonlight-embedded.git
synced 2026-06-17 06:11:36 +00:00
Replace usage of deprected functions with non-deprected in PcCryptoProvider
This commit is contained in:
@@ -21,19 +21,24 @@ import java.security.cert.X509Certificate;
|
|||||||
import java.security.interfaces.RSAPrivateKey;
|
import java.security.interfaces.RSAPrivateKey;
|
||||||
import java.security.spec.InvalidKeySpecException;
|
import java.security.spec.InvalidKeySpecException;
|
||||||
import java.security.spec.PKCS8EncodedKeySpec;
|
import java.security.spec.PKCS8EncodedKeySpec;
|
||||||
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import javax.security.auth.x500.X500Principal;
|
import org.bouncycastle.asn1.x500.X500NameBuilder;
|
||||||
|
import org.bouncycastle.asn1.x500.X500Name;
|
||||||
|
import org.bouncycastle.asn1.x500.style.BCStyle;
|
||||||
|
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.jce.provider.BouncyCastleProvider;
|
||||||
import org.bouncycastle.openssl.PEMWriter;
|
import org.bouncycastle.openssl.PEMWriter;
|
||||||
|
import org.bouncycastle.operator.ContentSigner;
|
||||||
|
import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder;
|
||||||
import org.bouncycastle.util.encoders.Base64;
|
import org.bouncycastle.util.encoders.Base64;
|
||||||
import org.bouncycastle.x509.X509V3CertificateGenerator;
|
|
||||||
|
|
||||||
import com.limelight.LimeLog;
|
import com.limelight.LimeLog;
|
||||||
import com.limelight.nvstream.http.LimelightCryptoProvider;
|
import com.limelight.nvstream.http.LimelightCryptoProvider;
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public class PcCryptoProvider implements LimelightCryptoProvider {
|
public class PcCryptoProvider implements LimelightCryptoProvider {
|
||||||
|
|
||||||
private File certFile = new File("client.crt");
|
private File certFile = new File("client.crt");
|
||||||
@@ -104,9 +109,6 @@ public class PcCryptoProvider implements LimelightCryptoProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean generateCertKeyPair() {
|
private boolean generateCertKeyPair() {
|
||||||
X509V3CertificateGenerator certGenerator = new X509V3CertificateGenerator();
|
|
||||||
X500Principal principalName = new X500Principal("CN=NVIDIA GameStream Client");
|
|
||||||
|
|
||||||
byte[] snBytes = new byte[8];
|
byte[] snBytes = new byte[8];
|
||||||
new SecureRandom().nextBytes(snBytes);
|
new SecureRandom().nextBytes(snBytes);
|
||||||
|
|
||||||
@@ -126,21 +128,24 @@ public class PcCryptoProvider implements LimelightCryptoProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Date now = new Date();
|
Date now = new Date();
|
||||||
Date expirationDate = new Date();
|
|
||||||
|
|
||||||
// Expires in 20 years
|
// Expires in 20 years
|
||||||
expirationDate.setYear(expirationDate.getYear() + 20);
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
calendar.setTime(now);
|
||||||
|
calendar.add(Calendar.YEAR, 20);
|
||||||
|
Date expirationDate = calendar.getTime();
|
||||||
|
|
||||||
certGenerator.setSerialNumber(new BigInteger(snBytes).abs());
|
BigInteger serial = new BigInteger(snBytes).abs();
|
||||||
certGenerator.setIssuerDN(principalName);
|
|
||||||
certGenerator.setNotBefore(now);
|
|
||||||
certGenerator.setNotAfter(expirationDate);
|
|
||||||
certGenerator.setSubjectDN(principalName);
|
|
||||||
certGenerator.setPublicKey(keyPair.getPublic());
|
|
||||||
certGenerator.setSignatureAlgorithm("SHA1withRSA");
|
|
||||||
|
|
||||||
|
X500NameBuilder nameBuilder = new X500NameBuilder(BCStyle.INSTANCE);
|
||||||
|
nameBuilder.addRDN(BCStyle.CN, "NVIDIA GameStream Client");
|
||||||
|
X500Name name = nameBuilder.build();
|
||||||
|
|
||||||
|
X509v3CertificateBuilder certBuilder = new JcaX509v3CertificateBuilder(name, serial, now, expirationDate, name, keyPair.getPublic());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
cert = certGenerator.generate(keyPair.getPrivate(), "BC");
|
ContentSigner sigGen = new JcaContentSignerBuilder("SHA1withRSA").setProvider(BouncyCastleProvider.PROVIDER_NAME).build(keyPair.getPrivate());
|
||||||
|
cert = new JcaX509CertificateConverter().setProvider(BouncyCastleProvider.PROVIDER_NAME).getCertificate(certBuilder.build(sigGen));
|
||||||
key = (RSAPrivateKey) keyPair.getPrivate();
|
key = (RSAPrivateKey) keyPair.getPrivate();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// Nothing should go wrong here
|
// Nothing should go wrong here
|
||||||
|
|||||||
Reference in New Issue
Block a user