123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- 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 SSLProtocol<String> {
- private static enum STATE {
- NONE, OPEN, CLOSED
- };
- private STATE state = STATE.NONE;
-
- @Override
- public int getPort() {
- //TODO
- return 50505;
- }
- @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>";
- }
|