Guest User

Untitled

a guest
Jun 24th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. import io.r2.simplepemkeystore.ExpiringCacheKeyManagerParameters;
  2. import io.r2.simplepemkeystore.MultiFileConcatSource;
  3. import io.r2.simplepemkeystore.ReloadablePemKeyStoreConfig;
  4.  
  5. import javax.net.ssl.*;
  6. import java.io.InputStream;
  7. import java.io.OutputStream;
  8. import java.net.Socket;
  9. import java.security.KeyStore;
  10. import java.security.SecureRandom;
  11.  
  12. public class SimplePemReload {
  13. public static void main(String[] argv) throws Exception {
  14. // init provider
  15. io.r2.simplepemkeystore.SimplePemKeyStoreProvider.register();
  16.  
  17. // set up keystore
  18. KeyStore ks = KeyStore.getInstance("simplepemreload");
  19. ks.load(
  20. new ReloadablePemKeyStoreConfig()
  21. .addCertificate("server", new String[]{"certificate.pem", "key.pem"})
  22. .withRefreshInterval(60)
  23. .asInputStream(),
  24. new char[0]
  25. );
  26. // set up key manager factory
  27. KeyManagerFactory kmf = KeyManagerFactory.getInstance("simplepemreload");
  28. kmf.init( ExpiringCacheKeyManagerParameters.forKeyStore(ks).withRevalidation(60) );
  29. KeyManager[] km = kmf.getKeyManagers();
  30.  
  31. // set up ssl context
  32. SSLContext context = SSLContext.getInstance("TLSv1.2");
  33. context.init(km, new TrustManager[0], new SecureRandom());
  34.  
  35. // open socket
  36. SSLServerSocketFactory factory = context.getServerSocketFactory();
  37. SSLServerSocket ssocket = (SSLServerSocket) factory.createServerSocket(4444);
  38. ssocket.setEnabledProtocols(new String[] { "TLSv1.2" });
  39. ssocket.setNeedClientAuth(false);
  40.  
  41. // accept and hello
  42. Socket socket = ssocket.accept();
  43. InputStream in = socket.getInputStream();
  44. OutputStream out = socket.getOutputStream();
  45. out.write("***hello***\n".getBytes());
  46. in.close();
  47. out.close();
  48. }
  49. }
Add Comment
Please, Sign In to add comment