1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- package de.tudarmstadt.informatik.hostage.protocol;
- import java.io.FileInputStream;
- import java.security.KeyStore;
- import java.util.ArrayList;
- import java.util.List;
- import javax.net.ssl.KeyManagerFactory;
- import javax.net.ssl.SSLContext;
- public class HTTPS implements Protocol<String> {
- private static enum STATE {
- NONE, OPEN, CLOSED
- };
- private STATE state = STATE.NONE;
- @Override
- public int getPort() {
- return 443;
- }
- @Override
- public TALK_FIRST whoTalksFirst() {
- return TALK_FIRST.CLIENT;
- }
- @Override
- public List<String> processMessage(String message) {
- List<String> response = new ArrayList<String>();
- response.add(header + html);
- state = STATE.CLOSED;
- return response;
- }
- @Override
- public boolean isClosed() {
- return state == STATE.CLOSED;
- }
- @Override
- public boolean isSecure() {
- return true;
- }
- @Override
- public Class<String> getType() {
- return String.class;
- }
- @Override
- public String toString() {
- return "HTTPS";
- }
- @Override
- public SSLContext getSSLContext() {
- String ksName = "/storage/sdcard0/server.bks";
- char ksPass[] = "password".toCharArray();
- KeyStore ks;
- KeyManagerFactory kmf = null;
- try {
- ks = KeyStore.getInstance(KeyStore.getDefaultType());
- ks.load(new FileInputStream(ksName), ksPass);
- kmf = KeyManagerFactory.getInstance(KeyManagerFactory
- .getDefaultAlgorithm());
- kmf.init(ks, ksPass);
- } catch (Exception e) {
- e.printStackTrace();
- }
- SSLContext sslcontext = null;
- try {
- sslcontext = SSLContext.getInstance("SSLv3");
- sslcontext.init(kmf.getKeyManagers(), null, null);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return sslcontext;
- }
- private String header = "HTTP/1.1 200 OK\r\n"
- + "Date: Mon, 01 Jul 2013 18:27:55 GMT\r\n"
- + "Server: Apache/2.2.22 (Debian)\r\n"
- + "X-Powered-By: PHP/5.4.4.-14\r\n" + "Vary: Accept-Encoding\r\n"
- + "Content-Length: 173\r\n" + "Keep-Alive: timeout=5, max=100\r\n"
- + "Connection: Keep-Alive\r\n" + "Content-Type: text/html\r\n"
- + "\r\n";
- private String html = "<!doctype html>\n" + "<html lang=\"en\">\n"
- + "<head>\n" + "<meta charset=\"UTF-8\">\n"
- + "<title>Test successful</title>\n" + "</head>\n" + "<body>\n"
- + "<h1>Test successful</h1>\n" + "<p>Congratulations.</p>\n"
- + "</body>\n" + "</html>";
- }
|