|
|
|
@ -39,6 +39,53 @@ public class MqttSSLSocketFactory {
|
|
|
|
return sslContext.getSocketFactory();
|
|
|
|
return sslContext.getSocketFactory();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// public static SSLSocketFactory getTwoDirSocketFactory(InputStream caCrtFile, InputStream crtFile, InputStream keyFile,
|
|
|
|
|
|
|
|
// String password) throws Exception {
|
|
|
|
|
|
|
|
// Security.addProvider(new BouncyCastleProvider());
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// // load CA certificate
|
|
|
|
|
|
|
|
// X509Certificate caCert = null;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// BufferedInputStream bis = new BufferedInputStream(caCrtFile);
|
|
|
|
|
|
|
|
// CertificateFactory cf = CertificateFactory.getInstance("X.509");
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// while (bis.available() > 0) {
|
|
|
|
|
|
|
|
// caCert = (X509Certificate) cf.generateCertificate(bis);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// // load client certificate
|
|
|
|
|
|
|
|
// bis = new BufferedInputStream(crtFile);
|
|
|
|
|
|
|
|
// X509Certificate cert = null;
|
|
|
|
|
|
|
|
// while (bis.available() > 0) {
|
|
|
|
|
|
|
|
// cert = (X509Certificate) cf.generateCertificate(bis);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// // load client private cert
|
|
|
|
|
|
|
|
// PEMParser pemParser = new PEMParser(new InputStreamReader(keyFile));
|
|
|
|
|
|
|
|
// Object object = pemParser.readObject();
|
|
|
|
|
|
|
|
// JcaPEMKeyConverter converter = new JcaPEMKeyConverter();
|
|
|
|
|
|
|
|
// KeyPair key = converter.getKeyPair((PEMKeyPair) object);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// KeyStore caKs = KeyStore.getInstance(KeyStore.getDefaultType());
|
|
|
|
|
|
|
|
// caKs.load(null, null);
|
|
|
|
|
|
|
|
// caKs.setCertificateEntry("cert-certificate", caCert);
|
|
|
|
|
|
|
|
// TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
|
|
|
|
|
|
|
|
// tmf.init(caKs);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
|
|
|
|
|
|
|
|
// ks.load(null, null);
|
|
|
|
|
|
|
|
// ks.setCertificateEntry("certificate", cert);
|
|
|
|
|
|
|
|
// ks.setKeyEntry("private-cert", key.getPrivate(), password.toCharArray(),
|
|
|
|
|
|
|
|
// new java.security.cert.Certificate[]{cert});
|
|
|
|
|
|
|
|
// KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
|
|
|
|
|
|
|
|
// kmf.init(ks, password.toCharArray());
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
|
|
|
|
|
|
|
|
// sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// return sslContext.getSocketFactory();
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
public static SSLSocketFactory getTwoDirSocketFactory(InputStream caCrtFile, InputStream crtFile, InputStream keyFile,
|
|
|
|
public static SSLSocketFactory getTwoDirSocketFactory(InputStream caCrtFile, InputStream crtFile, InputStream keyFile,
|
|
|
|
String password) throws Exception {
|
|
|
|
String password) throws Exception {
|
|
|
|
Security.addProvider(new BouncyCastleProvider());
|
|
|
|
Security.addProvider(new BouncyCastleProvider());
|
|
|
|
@ -86,5 +133,4 @@ public class MqttSSLSocketFactory {
|
|
|
|
return sslContext.getSocketFactory();
|
|
|
|
return sslContext.getSocketFactory();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|