HTTPS.java 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package de.tudarmstadt.informatik.hostage.protocol;
  2. import java.security.KeyStore;
  3. import javax.net.ssl.KeyManagerFactory;
  4. import javax.net.ssl.SSLContext;
  5. import de.tudarmstadt.informatik.hostage.HoneyService;
  6. /**
  7. * HTTPS protocol. Extends HTTP. Implementation of RFC document 2818. It can handle the
  8. * following requests: GET, HEAD, TRACE, POST, DELETE. For all other requests
  9. * '400 Bad Request' will be replied.
  10. *
  11. * @author Wulf Pfeiffer
  12. */
  13. public class HTTPS extends HTTP implements SSLProtocol {
  14. @Override
  15. public int getPort() {
  16. return 443;
  17. }
  18. @Override
  19. public SSLContext getSSLContext() {
  20. String keyStoreName = "https_cert.bks";
  21. char keyStorePassword[] = "password".toCharArray();
  22. KeyStore keyStore;
  23. KeyManagerFactory keyManagerFactory = null;
  24. try {
  25. keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
  26. keyStore.load(
  27. HoneyService.getContext().getAssets().open(keyStoreName),
  28. keyStorePassword);
  29. keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory
  30. .getDefaultAlgorithm());
  31. keyManagerFactory.init(keyStore, keyStorePassword);
  32. } catch (Exception e) {
  33. e.printStackTrace();
  34. }
  35. SSLContext sslContext = null;
  36. try {
  37. sslContext = SSLContext.getInstance("SSLv3");
  38. sslContext.init(keyManagerFactory.getKeyManagers(), null, null);
  39. } catch (Exception e) {
  40. e.printStackTrace();
  41. }
  42. return sslContext;
  43. }
  44. @Override
  45. public boolean isSecure() {
  46. return true;
  47. }
  48. @Override
  49. public String toString() {
  50. return "HTTPS";
  51. }
  52. }